GDB断点不停

GDB breakpoint doesn't stop

我的目标是找出 str_main 的地址 space,但是 gdb 跳过了我的断点。

如何找到它的地址位置?

我有一个简单的c程序,stack.c:

....
19 int main(int argc, char **argv[])
20 {
21    char str_main[517];
22    FILE *badfile;
23 
24    badfile = fopen("badfile","r");
....

当我进入 gdb 时,我在第 21 行设置了一个断点。但是,当我 运行 调试器时,我收到以下消息:

Breakpoint 1, main(argc=1, argv=0xbffff3d4) at stack.c:24
24            badfile = fopen("badfile","r");

GDB 不会停止没有默认值的声明。

即使达到24后,您仍然可以打印地址。

p /s str_main