LLDB调试命令(二)掌握target命令 让你的项目崩溃位置从此无处遁形

     大伙经常做项目都知道,iOS程序崩溃,很多都是因为 数组越界 访问野指针 适配布局语句不合法  版本系统兼容 等原因造成的,但遇到多人协同开发的项目,遇到崩溃问题,有时候往往我们不能最快的定位到项目崩溃的代码位置,因为很多代码不是我们本人写的, 我们尝试了 为 xcode 设置全局断点的方法,来获取代码崩溃的位置,但这种方法,只有60%的成功几率。


假设我们尝试了之前寻找崩溃的方法都不管用,还好我们可以使用 LLDB命令行来调试


我们运行这样一段代码 


很明显是一个数组越界的语句,运行结果,程序直接crash

我们看一下崩溃日志,发现看到的都是一些 地址之类的相关信息,不知道这些地址有什么作用,其实这些地址非常有用,我们分析一些 堆栈帧  ,记住找到 崩溃帧所在的前一帧的地址




当我们有一个地址,想找到具体地址对应的文件的位置的时候,可以使用 target modules lookup —adress命令

也可以简写为 target modules lookup -a 

随着LLDB版本的更新,target modules 又可以简化为 image

所以 target modules lookup -a 可以写为 image lookup -a  我们尝试一下这个命令



发现LLDB帮我们定位到代码崩溃在了 VIewController这个文件   textLLDBCrash 这个方法里,具体代码在 36行,对照图一中 数组越界的代码行数就是 36行,一点没错。



Guess you like

Origin blog.csdn.net/u014641631/article/details/51568270