【发布时间】:2014-07-07 06:20:49
【问题描述】:
我正在向最终用户发送软件。我的软件由 MFC 和 C# 组成。当任何进程崩溃时,我会自动将完整转储写入我的日志文件夹。我想运行另一个进程来嗅探日志文件夹并分析转储(如果有任何 .dmp 文件写入该文件夹)。
我知道在 WinDbg 的帮助下,如果我们拥有所有符号,我们可以手动分析转储文件。 但我想自动化这个过程。 我可以从我的代码中调用 windbg 来分析我的转储吗?
例如int i=1/0
代码中的上述行使代码崩溃。我得到了转储文件。
现在我应该看到一条消息,该特定行导致了问题。
【问题讨论】:
-
嗯,对于 C#,这很容易——只需处理异常。通常,只要您可以合理处理它(即,当它不损害应用程序的状态时),您就会这样做,但您也可以拥有一个全局未处理的异常处理程序(
Application.ThreadException和AppDomain.CurrentDomain.UnhandledException) .即使没有转储,这通常也足以找到错误。如果您发现自己必须进行自动转储分析,那么您的错误处理代码会很臭,在 .NET 中更是如此。在 localhost 上,您可以在代码中任何未处理的异常上附加调试器。 -
欢迎使用 Stackoverflow。当我写下答案时,我意识到它不符合 Stackoverflow 规则,因为:a) 它显示的研究工作很少。您可能已经了解了如何启动 WinDbg 并传递命令行参数。 b) 它太宽泛了。有很多方法可以实现你想要的。 c)要么太难回答这个问题(提供你真正需要的东西),要么太容易(严格回答你的问题,这只是一个“是”)。请阅读教程,熟悉 StackOverflow,您将来会从中受益。
标签: windows windbg crash-dumps