- 论坛徽章:
- 2
|
我在ubuntu1604的64位上面,用gcc编译一个小程序:
- #include<stdio.h>
- int main(int argc,char*argv[])
- {
- printf("hello\n");
- return argc;
- }
复制代码 用gcc来编译,带调试信息:
然后gdb来调试它,带2个参数,所以argc是3
- gdb --args my 01 02
- (gdb) b main
- Breakpoint 1 at 0x400535: file ret.c, line 5.
- (gdb) r
- Starting program: /home/a/cpp/my 01 02
- Breakpoint 1, main (argc=3, argv=0x7fffffffde98) at ret.c:5
- 5 printf("hello\n");
- (gdb) n
- hello
- 6 return argc;
- (gdb) x $rbp
- 0x7fffffffddb0: 0x00400550
- (gdb) x $rbp+4
- 0x7fffffffddb4: 0x00000000
- (gdb) x $rbp+8
- 0x7fffffffddb8: 0xf7a2e830
复制代码
上面几个字节里面都没有体现出"3"这个信息。是不是我的用法有问题,还是理解的不对?
|
|