`

iOS使用LLDB调试

    博客分类:
  • ios
阅读更多

 

LLDB基础教程:http://lldb.llvm.org/tutorial.html

LLDB命令:

命令                        解释    
break NUM               在指定的行上设置断点。    
bt                      显示所有的调用栈帧。该命令可用来显示函数的调用顺序。    
clear                   删除设置在特定源文件、特定行上的断点。其用法为:clear FILENAME:NUM。    
continue                继续执行正在调试的程序。该命令用在程序由于处理信号或断点而导致停止运行时。    
display EXPR            每次程序停止后显示表达式的值。表达式由程序定义的变量组成。    
file FILE               装载指定的可执行文件进行调试。    
help NAME               显示指定命令的帮助信息。    
info break              显示当前断点清单,包括到达断点处的次数等。    
info files              显示被调试文件的详细信息。    
info func               显示所有的函数名称。    
info local              显示当函数中的局部变量信息。    
info prog               显示被调试程序的执行状态。    
info var                显示所有的全局和静态变量名称。    
kill                    终止正被调试的程序。    
list                    显示源代码段。    
make                    在不退出 gdb 的情况下运行 make 工具。    
next                    在不单步执行进入其他函数的情况下,向前执行一行源代码。    
print EXPR              显示表达式 EXPR 的值。     
print-object            打印一个对象    
print (int) name      打印一个类型    
print-object [artist description]   调用一个函数    
set artist = @"test"    设置变量值    
whatis                  查看变理的数据类型   

 

 

其他调试参考文章:http://blog.csdn.net/kesalin/article/details/7222153

该文章中介绍了一种异常调试方式:

在系统抛出异常处设置断点

有时候我们的程序不知道跑到哪个地方就 crash 了,而 crash 又很难重现。保守的做法是在系统抛出异常之前设置断点,具体来说是在 objc_exception_throw处设置断点。设置步骤为:首先在 XCode 按 CMD + 6,进入断点管理窗口;然后点击右下方的 +,增加新的 Symbolic Breakpoint,在 Symbol 一栏输入:objc_exception_throw,然后点击 done,完成。 这样在 Debug 模式下,如果程序即将抛出异常,就能在抛出异常处中断了。比如在前面的代码中,我让 [firstObjctcrashTest]; 抛出异常。在 objc_exception_throw 处设置断点之后,程序就能在该代码处中断了,我们从而知道代码在什么地方出问题了

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics