目前我们MiniDumpWriteDump
用MiniDumpNormal | MiniDumpWithIndirectlyReferencedMemory
旗帜打电话。这适用于 Debug 配置中的内部构建,但没有提供我们在 Release 配置中所需的那么多信息。
在 Release 中,minidump 数据包含足够的堆栈信息,以便调试器找出代码中发生故障的位置,但没有其他数据。我不仅仅意味着由于优化而丢失了局部变量,正如您在发布版本中所期望的那样 - 我的意思是,除了调用堆栈和当前代码行之外,没有任何用处。没有寄存器,没有局部变量,没有全局变量,没有局部变量指向的对象——什么都没有。我们甚至没有得到允许我们查看当前对象的“this”。这就是使用的重点MiniDumpWithIndirectlyReferencedMemory
——它应该包含本地变量和堆栈变量引用的内存,但似乎没有。
我们应该改用什么标志?我们不想使用MiniDumpWithFullMemory
并开始生成超过 600MB 的转储,但如果这意味着获得更多有用的数据,我们会很乐意将转储扩展到我们目前获得的 90KB 以上。也许我们应该使用MiniDumpWithDataSegments
(globals) 或...?