我希望我的應用程序創建一個迷你轉儲以幫助調試無顯着的異常。MINIDUMP_TYPE枚舉值的什麼組合會給我最「完整的」迷你轉儲?
我可能不知道什麼類型的迷你轉儲,我將要創建轉儲後,所以我應該使用什麼樣的組合MINIDUMP_TYPE給我最完整的轉儲可能?
我希望我的應用程序創建一個迷你轉儲以幫助調試無顯着的異常。MINIDUMP_TYPE枚舉值的什麼組合會給我最「完整的」迷你轉儲?
我可能不知道什麼類型的迷你轉儲,我將要創建轉儲後,所以我應該使用什麼樣的組合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.
閱讀Effective minidumps at DebugInfo.com看起來會引導您找到解決方案。
我認爲,但後來的一些描述似乎矛盾。例如; MiniDumpFilterModulePaths描述表示只在特殊情況下使用,MiniDumpNormal表示它只包括*捕獲堆棧跟蹤所需的信息 - 將包括覆蓋其他標誌或反之亦然。 – sackoverflow 2011-02-18 12:31:28