我有一个很难跟踪的错误。它是仅在调试器未连接时才出现的那种之一:)
我已经调整了MiniDumpWriteDump(),这对于创建我可以在事后调试的.dmp文件非常有效。
然而,我正在做类似
的事情try
{
foo();
}
catch(Exception)
{
CreateMiniDump()
}
这很好用,但是我没有得到所需的callstack。我真的更喜欢在抛出异常的地方使用callstack(包含所有成员变量)。
这可能吗?是否有一种机制可以获得异常的第一个dib?这样我可以创建一个minidump并保留callstack等?答案 0 :(得分:2)
您可以订阅AppDomain.CurrentDomain.UnhandledException
以获取异常即将展开时引发的事件。当它被引发时,原始上下文仍在堆栈中。您可以将您的minidump创建代码放在事件处理程序中。
答案 1 :(得分:2)
在.NET 4及更高版本中,您可以订阅FirstChanceException事件。