debugging 如何调试一个程序时,它崩溃w/out异常?

2j4z5cfb  于 2023-04-21  发布在  其他
关注(0)|答案(2)|浏览(193)

我的一个程序周期性地崩溃,但我不知道为什么。我在调试模式下运行它,但什么也没有弹出。程序突然退出。我有过其他抛出异常的bug ......但不是这个。有什么神奇的方法可以捕捉它吗?

6g8kf2rb

6g8kf2rb1#

假设你是在Visual Studio中运行它,并且由于某种原因,它没有在调试器中停止,出现了一个未捕获的异常,在这种情况下,你可以尝试从Visual Studio外部捕获崩溃。请参阅我在System.AccessViolationException from unmanaged code?中的回答,特别是how to capture a crash dump
如果它只是周期性地崩溃,但在合理的短时间内,请从Sysinternals procdump启动。从Visual Studio外部启动可执行文件,然后运行:

procdump -e <YourExecutableNameOrPid>

并等待它收集崩溃转储-假设它由于未处理的异常而退出-然后将崩溃转储加载到VS 2010或WinDbg中。

iyr7buue

iyr7buue2#

程序突然退出
一定要检查你的代码,或者你使用的库之一,没有调用exit()(是的,听起来可能太简单了,但是我们曾经花了几个小时来跟踪随机程序的关闭到exit()调用..)。如果是这样,在那里设置一个断点或者更改为throw(),然后再次运行。如果不是,Sean的答案似乎是合法的。

相关问题