c++不同平台崩溃解析总结
崩溃解析的目标
能够确认到是哪行语句发生了错误,以及他的调用堆栈是怎么样的
安卓解析
下载地址
minidump_stackwalk
https://chromium.googlesource.com/breakpad/
addr2line地址链接工具
ndk里有,下载后直接搜就可以了
根据崩溃的机型选择工具
目前主要是armeabi和aarch64
解析方法
minidump_stackwalk [dmp路径] >crash.txt
ndk-stack -sym [符号表so文件的路径] -dump crash.txt
arm-linux-androideabi-addr2line.exe -C -f -e [符号表so文件的路径] [出错的地址]
ps: ndk-stack可以忽略
IOS崩溃解析
symbolicatecrash文件在xcode目录下找就可以了
解析方法
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
./symbolicatecrash ./*.crash ./*.app.dSYM > crash.log
windows崩溃解析
将.dmp拖到vs中,点击右侧的【设置符号路径
】,对应版本的pdb文件路径配置到缓存中。
然后点击【使用仅限本机进行调试
】就可以复现了
windbg
在没有源码的情况下,用pdb在windbg上解析也是可以的。
- 在符号路径下,添加pdb所在的文件夹
- 输入
.ecxr
- 输入
kb
就可以看到具体行数的报错堆栈了
windows unity包崩溃日志获取
如果没生成崩溃文件
打开注册表,定位[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps]
“DumpFolder”=,for example,”C:\Temp”
“DumpCount”=dword:00000010
“DumpType”=dword:00000002