void run()
{
int m = 2;
}
int main()
{
int *m = new int;
run();
return 0;
{
int m = 2;
}
int main()
{
int *m = new int;
run();
return 0;
}
(gdb) tbreak main
Temporary breakpoint 1 at 0x804869b: file test4.c, line 20.
(gdb) r
Starting program: /home/linxp/test/a.out
Temporary breakpoint 1, main () at test4.c:20
20 int *m = new int;
(gdb) n
21 run();
(gdb) i r ebp
ebp 0xbffff708 0xbffff708
(gdb) set *0xbffff70c=0x10
(gdb) c
Continuing.
Program received signal SIGSEGV, Segmentation fault.
0x00000010 in ?? ()
(gdb) bt
#0 0x00000010 in ?? ()
本文深入探讨了C++程序中通过new关键字分配内存后调用自定义函数时出现的异常处理机制及段错误原因,通过设置断点、运行程序并分析错误堆栈跟踪来定位问题。
1574

被折叠的 条评论
为什么被折叠?



