C# 在C语言中,当抛出异常时,我可以让代码执行吗?
我有一个bug很难追踪。这是仅在调试器未连接时发生的情况之一: 我使用了Pinvok MinidumpWriteUp,它非常适合创建.dmp文件,我可以在事后调试这些文件 然而,我正在做类似的事情C# 在C语言中,当抛出异常时,我可以让代码执行吗?,c#,winapi,crash-reports,crash-dumps,C#,Winapi,Crash Reports,Crash Dumps,我有一个bug很难追踪。这是仅在调试器未连接时发生的情况之一: 我使用了Pinvok MinidumpWriteUp,它非常适合创建.dmp文件,我可以在事后调试这些文件 然而,我正在做类似的事情 try { foo(); } catch(Exception) { CreateMiniDump() } 这非常有效,但是我没有得到想要的调用堆栈。我真的更喜欢在抛出异常的地方使用包含所有成员变量的callstack 这可能吗?是否有一种机制可以获得例外情况的优先权?这样我就可以创建
try
{
foo();
}
catch(Exception)
{
CreateMiniDump()
}
这非常有效,但是我没有得到想要的调用堆栈。我真的更喜欢在抛出异常的地方使用包含所有成员变量的callstack
这可能吗?是否有一种机制可以获得例外情况的优先权?这样我就可以创建一个小型转储并保留调用堆栈,等等?您可以订阅AppDomain.CurrentDomain.UnhandledException,以获取在异常即将解除时引发的事件。当它被提升时,原始上下文仍然在堆栈上。您可以将迷你转储创建代码放入事件处理程序中。您可以订阅AppDomain.CurrentDomain.UnhandledException,以获取异常即将解除时引发的事件。当它被提升时,原始上下文仍然在堆栈上。您可以将微型转储创建代码放入事件处理程序中。在.NET 4及更高版本中,您可以订阅该事件。在.NET 4及更高版本中,您可以订阅该事件。有关如何配置windows以保存完全崩溃转储。有关如何配置windows以保存完全崩溃转储,请参阅。