用atos命令来符号化某个特定模块加载地址

命令格式

atos [-o AppName.app/AppName] [-l loadAddress] [-arch architecture]


步骤


下面以Watch Extension为例:

1. 获取模块基地址


Extension模块的加载地址:0x76000


2. 确定CPU架构


CPU架构:i386


3. 执行命令

输入以下命令:


输入上面的命令,return后,需要继续输入崩溃的内存地址(上图中的绿圈的地方)




崩溃堆栈:0x0007792a,继续输入得到如下的结果



参考地址:

1. 分析iOS Crash文件:符号化iOS Crash文件的3种方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值