PC端崩溃基于breakpad提供的minidump_stackwalk工具解析,也就是APMPlus采用服务端栈回溯。相较于客户端栈回溯,准确性会差一些。
系统库的符号支持较少,目前无法拿到更准确的信息。以下针对业务侧的堆栈,所有类型问题都是以下两个原因:
可能是因为栈内存信息被破坏,minidump_stackwalk只能基于现有信息去猜调用关系,可以切换到崩溃详情 > 错误堆栈 > Raw里确认堆栈的回溯方式。
堆栈的4种情况准确性如下:
已知inline符号支持不好。
勉强符合预期。符号表中,符号信息分为两类:
当前frame pointer解析后为PUBLIC记录,没有文件名和行号信息,还有一种情况是因为符号表解析方式不对,使用了strip符号的文件导出符号表,导致符号表缺失必要信息。
大概率是上传的符号表有问题,缺失信息。
如果是Mac,请检查是否基于dSYM文件提取了.sym文件,dSYM文件里符号信息是最全的,macho文件一般都剪裁了符号,缺失了很多信息,请基于dSYM文件重新提取重新上传符号表。