我正在尝试调试意外关闭的程序。当我说“关闭时,我的意思是有一刻我看到所有的窗口都显示出来,每个窗口都显示所有正确的数据,然后突然所有的窗口都消失了。没有消息箱报告任何错误。所以我尝试运行调试器中的程序希望它会以某种方式陷入导致程序中止的任何东西,但即使在调试器中程序也只是突然结束。调试器的最后一行是:
The program '[5500] test.exe: Native' has exited with code 0 (0x0).
我的程序非常庞大且非常陈旧,有很多自我诊断功能。我的怀疑是,也许自我测试失败了,也许我只是叫“退出()”,忘记弹出一个解释原因的对话框。
我现在的问题是,我怎样才能找到代码中的哪一点,我的程序退出了?
答案 0 :(得分:5)
在exit()
和terminate()
上设置一个断点(也许一个会调用另一个,但我不确定)。
答案 1 :(得分:4)
马塞洛的回答很棒。如果由于某种原因你不能在exit
中断,请用atexit
安装一个函数(不带参数,返回void)并在其中进行分解。