Создание дампов CLR с помощью breakpad

Я использую Google Breakpad для создания аварийных дампов для моего приложения Windows, когда оно падает.

Мое приложение смешивает собственный код C++ с кодом C# CLR. Дампы, создаваемые breakpad, не содержат никакой информации CLR.

Можно ли включить дамп CLR с помощью Breakpad? Какие API необходимы для создания дампов CLR?

2 ответа

Что вы подразумеваете под "информацией 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

Как я объяснил в разделе Как получить хороший аварийный дамп в.NET, должны быть выполнены следующие условия:

  • разрядность соответствует разрядности процесса
  • нужен дамп со всей памятью

Последнее соответствует MiniDumpWithFullMemory перечисления MINIDUMP_TYPE.

Другие вопросы по тегам