我希望我的应用程序创建一个小型转储,以帮助调试无法处理的异常.
我可能不知道在创建转储之前我想要什么类型的迷你转储,那么我应该使用什么组合的MINIDUMP_TYPE标志来为我提供最完整的转储?
我在DebugInfo.com链接(感谢David)和MSDN页面的帮助下想出了以下列表.并非所有标志都包含在DebugInfo.com链接中.
使用这些标志应该创建一个全面但大的小型转储.
包括:
MiniDumpWithFullMemory - the contents of every readable page in the process address space is included in the dump. MiniDumpWithHandleData - includes info about all handles in the process handle table. MiniDumpWithThreadInfo - includes thread times,start address and affinity. MiniDumpWithProcessThreadData - includes contents of process and thread environment blocks. MiniDumpWithFullMemoryInfo - includes info on virtual memory layout. MiniDumpWithUnloadedModules - includes info from recently unloaded modules if supported by OS. MiniDumpWithFullAuxiliaryState - requests that aux data providers include their state in the dump. MiniDumpIgnoreInaccessibleMemory - ignore memory read failures. MiniDumpWithTokenInformation - includes security token related data.
排除:
MiniDumpNormal - value is 0 so always implicitly present,unless excluded by a callback (which I won't be doing). MiniDumpWithPrivateReadWriteMemory - excludes contents of shared memory. MiniDumpWithIndirectlyReferencedMemory - includes memory pages referenced by pointers on the stack,but assuming MiniDumpWithFullMemory already includes all pages in the process address space anyway. MiniDumpWithDataSegs - contents of writable data sections are already included by specifying MiniDumpWithFullMemory MiniDumpWithCodeSegs - assuming MiniDumpWithFullMemory includes this. MiniDumpWihtoutOptionalData - suppresses all memory operations other that MiniDumpNormal. MiniDumpFilterMemory - filters out contents of stack memory (also has no effect if MiniDumpWithFullMemory used). MiniDumpFilterModulePaths - removes module paths from the dump. MiniDumpScanMemory - used to exclude memory for specific modules via callbacks. MiniDumpWithPrivateWriteCopyMemory - assume MiniDumpWithFullMemory already includes this.