c++不同平台崩溃解析总结

崩溃解析的目标

能够确认到是哪行语句发生了错误,以及他的调用堆栈是怎么样的

安卓解析

下载地址

minidump_stackwalk

https://chromium.googlesource.com/breakpad/

git clone 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上解析也是可以的。

  1. 在符号路径下,添加pdb所在的文件夹
  2. 输入.ecxr
  3. 输入kb

就可以看到具体行数的报错堆栈了

windows unity包崩溃日志获取

https://docs.unity.cn/2019.4/Documentation/ScriptReference/Windows.CrashReporting-crashReportFolder.html

如果没生成崩溃文件

打开注册表,定位[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps]

“DumpFolder”=,for example,”C:\Temp”
“DumpCount”=dword:00000010
“DumpType”=dword:00000002

posted @ 2021-08-07 19:28  二律背反GG  阅读(241)  评论(0编辑  收藏  举报