This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: View memory content with gdb


>No it doesn't. Stack grows downward when you extend it — by reserving
>bytes or by `push`ing onto it. But after you've reserved the space in
>it, further addressing of that space is via positive offsets to $rsp.


Agreed... I can now see that 61H is inserted into those locations

(gdb) info registers rsp
rsp            0x7fffffffde50    0x7fffffffde50
(gdb) x/8x 0x7fffffffde50
0x7fffffffde50:    0xffffdf58    0x00007fff    0x55554580    0x00000002
0x7fffffffde60:    0xffffdf50    0x00007fff    0x00000000    0x00000000
(gdb) next
7      return 0;
(gdb) x/10x 0x7fffffffde50
0x7fffffffde50:    0xffffdf58    0x00007fff    0x55554580    0x00000002
0x7fffffffde60:    0xffffdf50    0x61617fff    0x61616161    0x61616161
0x7fffffffde70:    0x55554600    0x00005555


I wonder why it didn't insert 61H starting from 0x7fffffffde50?





>You've set two breakpoints: first at `#include <stdio.h>`, and second>at `int main( int argc, char **argv )`, which are the lines 1 and 3 of
>your current source file, respectively.


But what I did seems to be correct! 
Please see that although I set "break 1" and then "run", the program stops at strcpy line (line 6). That means it didn't set the breakpoint at the include line.

(gdb) break 1
Breakpoint 1 at 0x6bf: file mico.c, line 1.
(gdb) run aaaaaaaaa
Starting program: /home/mahmood/mico aaaaaaaaa

Breakpoint 1, main (argc=2, argv=0x7fffffffdf58) at mico.c:6
6      strcpy( buffer, argv[ 1 ] );
(gdb) p argv[1]
$1 = 0x7fffffffe302 "aaaaaaaaa"



Regards,
Mahmood 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]