【发布时间】:2010-09-25 04:09:04
【问题描述】:
我的一个程序定期崩溃,但我不知道为什么。我在调试模式下运行它,但没有弹出任何内容。程序突然退出。我还有其他确实会引发异常的错误......但不是这个。有什么神奇的方法可以捕捉到它吗?
【问题讨论】:
标签: c# visual-studio debugging
我的一个程序定期崩溃,但我不知道为什么。我在调试模式下运行它,但没有弹出任何内容。程序突然退出。我还有其他确实会引发异常的错误......但不是这个。有什么神奇的方法可以捕捉到它吗?
【问题讨论】:
标签: c# visual-studio debugging
假设您是从 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。
【讨论】:
程序突然退出
一定要检查您的代码或您使用的其中一个库是否没有调用 exit()(是的,这听起来可能太简单了,但我们曾经浪费了几个小时来跟踪随机程序关闭回到 exit() 调用..)。如果是这样,在此处放置一个断点或更改为 throw(),然后再次运行。如果不是,肖恩的回答似乎是合法的。
【讨论】: