gpt4 book ai didi

c++ - 我应该对 Minidumps 使用什么设置?

转载 作者:可可西里 更新时间:2023-11-01 18:40:05 39 4
gpt4 key购买 nike

目前我们用 MiniDumpNormal | 调用 MiniDumpWriteDump MiniDumpWithIndirectlyReferencedMemory 标志。这对于调试配置中的内部构建工作得很好,但没有提供我们在发布配置中需要的信息。

在 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

我建议您将 MiniDumpWithFullMemory 替换为 MiniDumpWithIndirectlyReferencedMemory

关于c++ - 我应该对 Minidumps 使用什么设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/284459/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com