我正在使用 Google Breakpad 在我的 Windows 应用程序崩溃时为其生成崩溃转储。
我的应用程序将 C++ 本机代码与 C# CLR 代码混合在一起。breakpad 生成的转储不包含任何 CLR 信息。
是否可以使用 Breakpad 打开 CLR 转储?创建 CLR 转储需要哪些 API?
我正在使用 Google Breakpad 在我的 Windows 应用程序崩溃时为其生成崩溃转储。
我的应用程序将 C++ 本机代码与 C# CLR 代码混合在一起。breakpad 生成的转储不包含任何 CLR 信息。
是否可以使用 Breakpad 打开 CLR 转储?创建 CLR 转储需要哪些 API?
“CLR信息”是什么意思?我一直在使用 Breakpad 创建故障转储,我可以使用 SOS 通过它们进行调试。
编辑:这是你需要做的
.loadby sos clr $$ For .NET 4
~0s $$ Most crashes are on Thread 0
!pe $$ Print the exception
~1s $$ Let's take a look at Thread 1
!clrstack $$ Dump the managed stack
正如我在How do I take a good crash dump in .NET 中解释的那样,应满足以下条件:
后者对应于MiniDumpWithFullMemory
MINIDUMP_TYPE枚举。