Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is minimum MINIDUMP_TYPE set to dump native C++ process that hosts .net component to be able to use !clrstack in windbg

There is native C++ application that hosts several .net components. When some error occurs this application creates mini dump using MiniDumpWriteDump function. Question here what is minimum set of

[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,
};

that should be passed to MiniDumpWriteDump to produce small dump file but with ability to see clr stack)? Sure, full memory dump will work but how to get only bearable minimum?

like image 871
Stanislav Berkov Avatar asked Jan 31 '11 13:01

Stanislav Berkov


1 Answers

In fact, it is enough to specify these options (to make dump small and be able to extract managed callstacks):

  1. MiniDumpNormal (default)
  2. MiniDumpWithProcessThreadData
  3. MiniDumpWithThreadInfo
  4. MiniDumpWithUnloadedModules

Thanks a lot to Oleg Starodumov form http://debuginfo.com/

like image 159
Stanislav Berkov Avatar answered Nov 10 '22 00:11

Stanislav Berkov