我应该使用Minidumps进行哪些设置?

And*_*ick 7 c++ minidump release

目前我们MiniDumpWriteDumpMiniDumpNormal | MiniDumpWithIndirectlyReferencedMemory旗帜打电话.这适用于Debug配置中的内部构建,但是没有提供我们在Release配置中所需的尽可能多的信息.

在Release中,minidump数据包含足够的堆栈信息,以便调试器计算出代码中发生故障的位置,但没有其他数据.我不仅仅意味着由于优化而缺少局部变量,正如您在Release版本中所期望的那样 - 我的意思是除了调用堆栈和当前代码行之外没有任何其他用处.没有寄存器,没有本地,没有全局,没有当地人指向的对象 - 什么都没有.我们甚至没有得到'this',这将允许我们查看当前对象.这是使用点MiniDumpWithIndirectlyReferencedMemory- 它应该包含本地和堆栈变量引用的内存,但似乎不是.

我们应该使用什么标志呢?我们不想使用MiniDumpWithFullMemory并开始生成600MB +转储,但如果它意味着获得更多有用的数据,我们很乐意将转储扩展到我们目前获得的90KB之外.也许我们应该使用MiniDumpWithDataSegments(全局)或......?

Tho*_*ler 0

WinDbg 对 a 使用以下标志.dump /ma

0:003> .dumpdebug
----- User Mini Dump Analysis

MINIDUMP_HEADER:
Version         A793 (62F0)
NumberOfStreams 13
Flags           41826
                0002 MiniDumpWithFullMemory
                0004 MiniDumpWithHandleData
                0020 MiniDumpWithUnloadedModules
                0800 MiniDumpWithFullMemoryInfo
                1000 MiniDumpWithThreadInfo
                40000 MiniDumpWithTokenInformation
Run Code Online (Sandbox Code Playgroud)

我建议你替换MiniDumpWithFullMemoryMiniDumpWithIndirectlyReferencedMemory.