Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C语言中,当抛出异常时,我可以让代码执行吗?_C#_Winapi_Crash Reports_Crash Dumps - Fatal编程技术网

C# 在C语言中,当抛出异常时,我可以让代码执行吗?

C# 在C语言中,当抛出异常时,我可以让代码执行吗?,c#,winapi,crash-reports,crash-dumps,C#,Winapi,Crash Reports,Crash Dumps,我有一个bug很难追踪。这是仅在调试器未连接时发生的情况之一: 我使用了Pinvok MinidumpWriteUp,它非常适合创建.dmp文件,我可以在事后调试这些文件 然而,我正在做类似的事情 try { foo(); } catch(Exception) { CreateMiniDump() } 这非常有效,但是我没有得到想要的调用堆栈。我真的更喜欢在抛出异常的地方使用包含所有成员变量的callstack 这可能吗?是否有一种机制可以获得例外情况的优先权?这样我就可以创建

我有一个bug很难追踪。这是仅在调试器未连接时发生的情况之一:

我使用了Pinvok MinidumpWriteUp,它非常适合创建.dmp文件,我可以在事后调试这些文件

然而,我正在做类似的事情

try
{
    foo();
}
catch(Exception)
{
    CreateMiniDump()
}
这非常有效,但是我没有得到想要的调用堆栈。我真的更喜欢在抛出异常的地方使用包含所有成员变量的callstack


这可能吗?是否有一种机制可以获得例外情况的优先权?这样我就可以创建一个小型转储并保留调用堆栈,等等?

您可以订阅AppDomain.CurrentDomain.UnhandledException,以获取在异常即将解除时引发的事件。当它被提升时,原始上下文仍然在堆栈上。您可以将迷你转储创建代码放入事件处理程序中。

您可以订阅AppDomain.CurrentDomain.UnhandledException,以获取异常即将解除时引发的事件。当它被提升时,原始上下文仍然在堆栈上。您可以将微型转储创建代码放入事件处理程序中。

在.NET 4及更高版本中,您可以订阅该事件。

在.NET 4及更高版本中,您可以订阅该事件。

有关如何配置windows以保存完全崩溃转储。有关如何配置windows以保存完全崩溃转储,请参阅。