前段时间上线一个app后,发现友盟上面有一个错误出现了很多次,但是友盟仅仅提供一个内存地址,没有详细的介绍错误信息。于是就有点懵逼了,这我该如何定位呢?
研究过后发现只要根据内存的地址找到对应的位置就可以了,那么需要什么操作呢?
- 第一步需要保存打包的dSYMs文件(查找的时候一定要找到对应的dSYMs文件,不然找不到对应的代码)
找到对应的编译包
右键 show in the finder,
右键显示包内容,然后就可以找到之前说的dSYMs
点击进入dSYMs,取出文件路径
- 接着打开终端输入:
dwarfdump --arch=arm64 --lookup 0xa9b29 (有可能错误的内存)“path”(dsym的路径,可以直接拖入终端)
dwarfdump --arch=arm64 --lookup 0x1000f9f5c /Users/mengrenjie/Library/Developer/Xcode/Archives/2016-08-12/newydl\ 16-8-12\ 12.34.xcarchive/dSYMs/newydl.app.dSYM
结果如下:
是不是很方便?可以动手试一下啦。