2

我正在使用 Google Breakpad 在我的 Windows 应用程序崩溃时为其生成崩溃转储。

我的应用程序将 C++ 本机代码与 C# CLR 代码混合在一起。breakpad 生成的转储不包含任何 CLR 信息。

是否可以使用 Breakpad 打开 CLR 转储?创建 CLR 转储需要哪些 API?

4

2 回答 2

1

“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
于 2011-08-14T09:15:05.417 回答
0

正如我在How do I take a good crash dump in .NET 中解释的那样,应满足以下条件:

  • bitness 匹配进程的位数
  • 需要一个包含所有内存的转储

后者对应于MiniDumpWithFullMemoryMINIDUMP_TYPE枚举

于 2017-04-05T20:55:25.073 回答