我有以下问题:我的应用程序以代码 1 退出。我想在 libc 的退出处设置一个断点以了解导致此问题的原因,但是我不知道该怎么做。我正在使用 MSVC 2012。任何帮助将不胜感激。
问问题
86 次
1 回答
0
使用atexit()
一个小的实用函数或一个全局的析构函数。问题是,当它退出时,导致它退出的任何堆栈帧早已不复存在。另请注意,该程序可能根本不调用exit()
,但可能TerminateProcess()
. 文本说“exited with”这一事实并不意味着该exit()
函数被调用,返回 frommain()
具有相同的效果。
我的建议是在调试器中单步执行它以找出导致程序退出的代码。这应该可以让你快速解决问题。还要检查调试输出中是否存在异常情况,例如未捕获的异常。请注意,“第一次机会异常”消息具有误导性,因为即使捕获到异常,它们也会被写入。不过,如果您怀疑,您可以将 IDE 配置为在引发异常的位置停止,这样在某些情况下更容易找到该位置。
于 2013-04-25T19:57:26.457 回答