WER注册表DumpType1迷你转储使用的MINIDUMP_TYPE标志组合是什么?
Windows Error Report迷你转储DumpType 1对应的MINIDUMP_TYPE标志组合
注册表中DumpType=1(迷你转储)对应的MINIDUMP_TYPE标志组合为:
MiniDumpNormal:基础迷你转储核心,包含线程栈、寄存器状态、加载的模块列表、进程/线程基本信息MiniDumpWithHandleData:附加进程的句柄表数据MiniDumpWithUnloadedModules:附加已卸载模块的信息(仅部分Windows版本支持)MiniDumpWithThreadInfo:附加线程的优先级、创建时间等额外元数据
关于字符串缺失的原因
默认迷你转储仅捕获栈帧上的直接内存数据,而程序中的字符串大多存储在堆内存中,属于间接引用内存,不在上述标志的捕获范围内,所以看不到字符串数据。
针对需求的解决方案
如果想保留标准迷你转储的全部核心崩溃信息,同时捕获栈跟踪关联的字符串数据,建议使用以下自定义MINIDUMP_TYPE标志组合:
MiniDumpNormal | MiniDumpWithHandleData | MiniDumpWithUnloadedModules | MiniDumpWithThreadInfo | MiniDumpWithIndirectlyReferencedMemory
这个组合既包含了默认迷你转储的15MB级核心数据,又能捕获栈引用到的堆内存(包括字符串),不会遗漏关键崩溃上下文。
单独使用MiniDumpWithIndirectlyReferencedMemory的问题
你单独设置该标志时文件仅400KB,是因为它只捕获栈帧间接引用的内存块,完全没有包含迷你转储必需的核心信息(比如所有线程的完整栈、模块列表、寄存器状态等),这类转储几乎无法用于分析崩溃原因,必须搭配基础的MiniDumpNormal等标志使用。
内容的提问来源于stack exchange,提问作者PizzaToCode
相关产品推荐
相关产品推荐

