我希望我的应用创建一个小型转储,以帮助调试无法处理的异常。
我可能不知道在创建转储之前我想要什么类型的迷你转储,那么我应该使用哪些MINIDUMP_TYPE标志组合来为我提供最完整的转储?
答案 0 :(得分:10)
我在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.
答案 1 :(得分:4)
阅读Effective minidumps at DebugInfo.com看起来会引导您找到解决方案。