Skip to content

Instantly share code, notes, and snippets.

@tthtlc
Forked from DreamLinuxer/debug.log
Created April 13, 2018 14:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tthtlc/e5b6dbf14c697563c2cbd9415a663422 to your computer and use it in GitHub Desktop.
Save tthtlc/e5b6dbf14c697563c2cbd9415a663422 to your computer and use it in GitHub Desktop.
GDB script example
Reading symbols from ~/gist/gist-4077328/gdb_test...done.
Breakpoint 1 at 0x4005cf: file gdb_test.c, line 7.
Breakpoint 1, output (val=91652772) at gdb_test.c:7
7 printf("OUTPUT: %X\n",val);
#0 output (val=91652772) at gdb_test.c:7
#1 0x0000000000400632 in rand_output (prev=4294967295, mid=1073741824, mask=2147483647) at gdb_test.c:16
#2 0x000000000040066a in main () at gdb_test.c:23
Breakpoint 1, output (val=4481602) at gdb_test.c:7
7 printf("OUTPUT: %X\n",val);
#0 output (val=4481602) at gdb_test.c:7
#1 0x0000000000400632 in rand_output (prev=31378967, mid=8388608, mask=16777215) at gdb_test.c:16
#2 0x0000000000400626 in rand_output (prev=54019494, mid=16777216, mask=33554431) at gdb_test.c:14
#3 0x0000000000400626 in rand_output (prev=131004178, mid=33554432, mask=67108863) at gdb_test.c:14
#4 0x0000000000400626 in rand_output (prev=211331964, mid=67108864, mask=134217727) at gdb_test.c:14
#5 0x0000000000400626 in rand_output (prev=403325717, mid=134217728, mask=268435455) at gdb_test.c:14
#6 0x0000000000400626 in rand_output (prev=602224003, mid=268435456, mask=536870911) at gdb_test.c:14
#7 0x0000000000400626 in rand_output (prev=1661342506, mid=536870912, mask=1073741823) at gdb_test.c:14
#8 0x0000000000400626 in rand_output (prev=4294967295, mid=1073741824, mask=2147483647) at gdb_test.c:14
#9 0x000000000040066a in main () at gdb_test.c:23
Breakpoint 1, output (val=187268169) at gdb_test.c:7
7 printf("OUTPUT: %X\n",val);
#0 output (val=187268169) at gdb_test.c:7
#1 0x0000000000400632 in rand_output (prev=4294967295, mid=1073741824, mask=2147483647) at gdb_test.c:16
#2 0x000000000040066a in main () at gdb_test.c:23
Breakpoint 1, output (val=289668203) at gdb_test.c:7
7 printf("OUTPUT: %X\n",val);
#0 output (val=289668203) at gdb_test.c:7
#1 0x0000000000400632 in rand_output (prev=4294967295, mid=1073741824, mask=2147483647) at gdb_test.c:16
#2 0x000000000040066a in main () at gdb_test.c:23
OUTPUT: 57682A4
OUTPUT: 446242
OUTPUT: B297C49
OUTPUT: 1143FC6B
[Inferior 1 (process 23466) exited normally]
set breakpoint pending on
set pagination off
b output
command
bt
c
end
r
q
#include<stdio.h>
#include<stdlib.h>
#include<stdint.h>
#include<time.h>
void output(uint32_t val)
{
printf("OUTPUT: %X\n",val);
}
void rand_output(uint32_t prev,uint32_t mid,uint32_t mask)
{
uint32_t r;
r=rand()&mask;
if(r>mid)
rand_output(r,mid>>1,mask>>1);
else
output(r);
}
int main()
{
int i;
srand(time(NULL));
for(i=0;i<4;++i)
rand_output(0xFFFFFFFF,0x40000000,0x7FFFFFFF);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment