ios dSYM 符号化

1,551 阅读1分钟

atos

  • atos 是一个可以把地址转换为函数名(包括行号)的工具, 它和dwarfdump 为mac os自带工具.
    我们使用atos命令来完成符号化,具体命令如下:
    $ atos -arch <Binary Architecture> -o <Path to dSYM file>/Contents/Resources/DWARF/<binary image name> -l <load address> <address to symbolicate>

其中:

  • Binary Architecture: arm64、armv6、armv7 armv7s 根据自己的情况来写。
  • Path to dSYM file: dSYM文件的路径。
  • binary image name: 你工程的名字。
  • load address: 是运行时起始地址(基地址),如果我们的崩溃日志中没有这个信息(比如上面的Crash信息中就没有包含),就需要我们手动去计算这个load * address:laod address = address to symbolicate - offset,比如:0x0000000102838119转化为十进制为4337139993,再减去偏移量265,为4337139728,在转化为十六进制0x0000000102838010
  • address to symbolicate:运行时堆栈地址,当前方法的内存地址。

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