
Untitled
By: a guest on
May 21st, 2012 | syntax:
None | size: 1.96 KB | hits: 20 | expires: Never
for some reason I'm having a problem with gdb not hitting my breakpoint set for strcpy(). I have a feeling it has to do with the book being a little bit outdated then the current software I'm using. Any info as to what I'm lacking would be grateful.
[sysadmin@milkyway booksrc]$ gdb -q char_array2
Reading symbols from /home/sysadmin/code/c/booksrc/char_array2...done.
(gdb) list
1 #include <stdio.h>
2 #include <string.h>
3
4 int main() {
5 char str_a[20];
6
7 strcpy(str_a, "Hello world!\n");
8 printf(str_a);
9 }
(gdb) break 6
Breakpoint 1 at 0x80483b5: file char_array2.c, line 6.
(gdb) break strcpy
Function "strcpy" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 2 (strcpy) pending.
(gdb) break 8
Breakpoint 3 at 0x80483d2: file char_array2.c, line 8.
(gdb) run
Starting program: /home/sysadmin/code/c/booksrc/char_array2
Breakpoint 1, main () at char_array2.c:7
7 strcpy(str_a, "Hello world!\n");
(gdb) i r eip
eip 0x80483b5 0x80483b5 <main+17>
(gdb) x/5i $eip
0x80483b5 <main+17>: lea eax,[ebp-0x18]
0x80483b8 <main+20>: mov DWORD PTR [eax],0x6c6c6548
0x80483be <main+26>: mov DWORD PTR [eax+0x4],0x6f77206f
0x80483c5 <main+33>: mov DWORD PTR [eax+0x8],0x21646c72
0x80483cc <main+40>: mov WORD PTR [eax+0xc],0xa
(gdb) continue
Continuing.
Breakpoint 3, main () at char_array2.c:8
8 printf(str_a);
(gdb) i break
Num Type Disp Enb Address What
1 breakpoint keep y 0x080483b5 in main at char_array2.c:6
breakpoint already hit 1 time
2 breakpoint keep y 0x00808cb4 <strcpy+4>
3 breakpoint keep y 0x080483d2 in main at char_array2.c:8
breakpoint already hit 1 time
(gdb)
Break 2 is being skipped. Maybe strcpy isn't being resolved properly. I'm not sure how to fix it.
gdb n00b..