iOS利用dSYM文件解析crash日志

拿到crash之后大概是这个样子的


这个时候我们就需要进行解析。这里我介绍的是用symbolicatecrash进行解析。

首先是查找 symbolicatecrash所在的位置。我们需要打开终端,在中断中输入如下命令:

find  /Applications/Xcode.app -name symbolicatecrash -type f
这个命令执行的时间可能会比较长,执行完之后的效果是这样的。


这个时候我们把 找到的文件copy到你想要解析日志的文件夹 下边。我这里所有的例子都是APPA。

cp  /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash   ~/Desktop/APPA/<pre code_snippet_id="1664435" snippet_file_name="blog_20160427_2_8777656" name="code" class="ruby">symbolicatecrash
 

然后进入到你放置crash文件和dSYM文件所在的目录里边,执行下边的命令。


cd ~/Desktop/APPA
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer/"
./symbolicatecrash  APPA.app.crash  APPA.app.dSYM/M > APPA.app.log

执行完的效果如下图:


然后看一下解析完的效果:




总结下来只有几个命令

find /Applications/Xcode.app -name symbolicatecrash -type f
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
cp  /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash   ~/Desktop/APPA
localhost:~ xiaobing$ cd ~/Desktop/APPA
sions/A/Resources/symbolicatecrash   yourFinder
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer/"
./symbolicatecrash  APPA.app.crash  APPA.app.dSYM/M > APPA.app.log
dwarfdump --uuid APPA.app.dSYM //查看UUID

相关示例文件请移步 :  https://github.com/sixTiger/APPJump



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 dSYM 文件可以帮助我们解析动态库的地址。dSYM 文件是符号调试信息的容器,它包含了编译后的二进制文件与源代码之间的映射关系,以及符号表信息。 对于 iOS 应用程序,可以通过以下步骤来利用 dSYM 文件解析动态库地址: 1. 在 Xcode 中,选择你的项目目录,然后右键点击选择 "Show in Finder"。 2. 在 Finder 中,找到以 ".app" 为后缀的应用程序包,并右键点击选择 "Show Package Contents"。 3. 在应用程序包中,找到对应的 dSYM 文件。通常,dSYM 文件与可执行文件(例如应用程序的主二进制文件)位于同一目录下。 4. 将 dSYM 文件复制到一个方便访问的位置,例如你的项目目录下。 一旦你获得了 dSYM 文件,你可以使用工具来解析动态库地址。以下是一些常用的工具和用法示例: 1. **atos**:使用该命令行工具可以将地址转换为符号名称。在终端中运行以下命令: ```bash # 根据 dSYM 文件和地址解析符号 atos -arch <架构> -o <dSYM 文件路径> -l <加载地址> <要解析的地址> ``` 例如: ```bash # 解析地址 0x0000000100012345 atos -arch arm64 -o /path/to/YourApp.app.dSYM/Contents/Resources/DWARF/YourApp -l 0x100012345 0x0000000100012345 ``` 2. **lldb**:使用 lldb 调试工具可以加载 dSYM 文件解析地址。在终端中运行以下命令: ```bash # 进入 lldb 调试模式 lldb # 加载可执行文件和 dSYM 文件 target create /path/to/YourApp settings set target.source-map <应用程序路径> <dSYM 文件路径> # 解析地址 image lookup --address <要解析的地址> # 退出 lldb 调试模式 quit ``` 例如: ```bash # 进入 lldb 调试模式 lldb # 加载可执行文件和 dSYM 文件 target create /path/to/YourApp settings set target.source-map /path/to/YourApp.app /path/to/YourApp.app.dSYM # 解析地址 0x0000000100012345 image lookup --address 0x0000000100012345 # 退出 lldb 调试模式 quit ``` 这些工具可以将给定的地址转换为符号名称,帮助你在应用程序中定位和调试问题。请注意,在使用这些工具时,确保提供正确的架构、dSYM 文件路径、加载地址和要解析的地址。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值