dsYM文件分析方法

dsYM文件分析方法,第1张

1、要使用Xcode符号化 crash log,你需要下面所列的3个文件

①crash报告(.crash文件)

②符号文件 (.dsymb文件)

③应用程序文件 (.app文件)

2、把这3个文件放到同一个目录下,打开Xcode的Window菜单下的organizer,然后点击Devices tab,然后选中左边的Device Logs。

然后把.crash文件拖到Device Logs或者选择下面的import导入.crash文件。

这样你就可以看到crash的详细log了。

1、将“.app“, “.dSYM”和 ".crash"文件放到同一个目录 ./Crash 下。

2、在Xcode中找到 symbolicatecrash 工具

找到后将 symbolicatecrash 拷贝到 ./Crash 目录下

3、切换到 ./Crash 目录下。 打开终端(Terminal)然后输入如下的命令:

export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer

然后输入命令:

./symbolicatecrash appName.crash appName.app >appName.log

现在,符号化的crash log就保存在appName.log中了。

我们使用atos命令来完成符号化,具体命令如下: $ atos -arch <Binary Architecture>-o <Path to dSYM file>/Contents/Resources/DWARF/<binary image name>-l <load address><address to symbolicate> 其中:

具体示例: atos -arch arm64 -o CrashDemo.app.dSYM/Contents/Resources/DWARF/CrashDemo -l 0x0000000102838010 0x0000000102838119

查看dsYM文件UUID:

方法一: 通过命令行查看dSYM文件的UUID

① xcrun dwarfdump --uuid <dSYM文件>

② dwarfdump --uuid TestAvoidCrash.app.dSYM/

③ dwarfdump --uuid TestAvoidCrash.app/TestAvoidCrash

方法二:通过符号表文件查看UUID

符号表文件的UUID与dSYM文件的UUID是一致的,因此可以通过符号表工具生成的符号表文件来查看dSYM文件的UUID:

生成符号表文件(.zip) --->解压符号表文件(.symbol) --->使用文本编辑器打开符号表文件

一般情况下, 项目编译完 dSYM 文件和 app 文件在同一个目录.

如果未发现 .dSYM 文件呢?

找到.dSYM文件后, 如果需要查看UUID的话, 在文件所在目录下, 输入以下指令

atos 是一个可以把地址转换为函数名(包括行号)的工具, 它和 dwarfdump 为mac os自带工具.

另外, 我们可以通过Xcode菜单栏中Window ->Device and Simulator ->View logs 查看手机运行 crash log

右侧的 log信息 , 第一次加载的时候是 未被符号话 的,

由于Xcode内置了 symbolicatecrash 工具, 所以过了一会这个 log 会显示出函数调用信息.

模拟器:

真机(iOS设备):

若文中有任何错误, 请不吝赐教.

参考

Bugly符号表使用

手动解析CrashLog之----方法篇


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/11750518.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存