我的一个程序会定期崩溃,但我不知道为什么。我在调试模式下运行它,但没有弹出任何东西。该计划突然退出。我有其他错误会引发异常...但不是这个。是否有一种神奇的方式来捕捉它或什么?
答案 0 :(得分:8)
据推测,您是在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。
答案 1 :(得分:4)
该程序突然退出
一定要检查你的代码或你使用的其中一个库是不是调用exit()(是的,这可能听起来太简单了,但是我们曾经失去了几个小时跟踪随机程序关闭回到exit()调用..)。如果是这样,在那里放置一个断点或改为throw(),然后再次运行。如果没有,肖恩的答案似乎是合法的。
答案 2 :(得分:1)
您可以在以下类似帖子中找到更多建议:Third-party dll crashes program with no exception thrown。