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

前端之家收集整理的这篇文章主要介绍了c – 我应该使用Minidumps进行哪些设置?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
目前我们用MiniDumpNormal |调用MiniDumpWriteDump MiniDumpWithIndirectlyReferencedMemory标志.这适用于Debug配置中的内部构建,但是没有提供我们在Release配置中所需的尽可能多的信息.

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

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

解决方法

WinDbg对.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

我建议你用MiniDumpWithIndirectlyReferencedMemory替换MiniDumpWithFullMemory.

猜你在找的C&C++相关文章