Какой минимальный MINIDUMP_TYPE установлен для создания дампа собственного процесса C ++, который содержит компонент .net, чтобы иметь возможность использовать! Clrstack в windbg - PullRequest
4 голосов
/ 31 января 2011

Существует собственное приложение C ++, в котором размещены несколько компонентов .net. Когда возникает какая-либо ошибка, это приложение создает мини-дамп с использованием функции MiniDumpWriteDump. Вопрос здесь, каков минимальный набор

[Flags ]enum MINIDUMP_TYPE {
MiniDumpNormal = 0x00000000,
MiniDumpWithDataSegs = 0x00000001,
MiniDumpWithFullMemory = 0x00000002,
MiniDumpWithHandleData = 0x00000004,
MiniDumpFilterMemory = 0x00000008,
MiniDumpScanMemory = 0x00000010,
MiniDumpWithUnloadedModules = 0x00000020,
MiniDumpWithIndirectlyReferencedMemory = 0x00000040,
MiniDumpFilterModulePaths = 0x00000080,
MiniDumpWithProcessThreadData = 0x00000100,
MiniDumpWithPrivateReadWriteMemory = 0x00000200,
MiniDumpWithoutOptionalData = 0x00000400,
MiniDumpWithFullMemoryInfo = 0x00000800,
MiniDumpWithThreadInfo = 0x00001000,
MiniDumpWithCodeSegs = 0x00002000,
MiniDumpWithoutManagedState = 0x00004000,
};

что должно быть передано MiniDumpWriteDump для создания небольшого файла дампа, но с возможностью видеть стек clr) Конечно, полный дамп памяти будет работать, но как получить только терпимый минимум?

Ответы [ 2 ]

4 голосов
/ 24 ноября 2011

Фактически, достаточно указать эти параметры (чтобы сделать дамп небольшим и иметь возможность извлекать управляемые стеки вызовов):

  1. MiniDumpNormal (по умолчанию)
  2. MiniDumpWithProcessThreadData
  3. MiniDumpWithThreadInfo
  4. MiniDumpWithUnloadedModules

Большое спасибо форме Олега Стародумова http://debuginfo.com/

0 голосов
/ 31 января 2011

Насколько я знаю, вам нужен полный дамп.Причина заключается в том, что для декодирования содержимого стека вам нужна память, выделенная CLR в частном порядке (например, методы JITted).

Теоретически возможно вручную добавить эти области памяти в меньший дамп, ноперечисленные выше значения перечисления, боюсь, что только полный дамп будет содержать эту информацию.

...