Xcode 断点调试
2014-07-30 18:00
141 查看
lldb 常用命令
po(print-object)+ 对象
p(print)+ 基本数据类型 int之类
bt 打印最后一次调用堆栈
expr (exchange parameter)/(expression) 动态修改变量
你以前怎么验证是不是某个变量的值导致整段程序不能正常工作?修改代码中的变量的值,然后cmd+r重新启动app?现在你不需要这么做了,只需要设置一个断点,当程序在这进入调试模式后,使用expr命令即可在运行时修改变量的值。
假如有一个loginWithUsername:方法,需要两个参数:username,password。
首先设置好断点,如下图所示:
运行app,进入断点模式后,在(lldb)后输入
控制台会返回以下信息
现在跳出断点,执行断点之后的两条输出语句,控制台会有以下输出
看到看吧,我们在运行时修改了变量的值,事情还可以变的更简单一些,我们可以编辑断点,让它自动填充需要的修改的变量的值,并且可以选择在此断点处不进入断点模式,仅仅修改指定变量的值,然后自动执行后续代码。
右击断点选择“Edit Breakpoint...”(或者按住cmd+option,单击断点),然后如下图所示设置断点
注意选中了最后一行(“Automatically continue after evaluating”)的选择框,这就保证运行到这个断点的时,填充变量的值,然后继续运行,并不在此处断点进入调试模式。
运行app,你会得到和上述手动设置变量的值一样的输出。
接下来单击断点,使其处于禁用状态,现在箭头的颜色应该是浅蓝色的,重新运行app,你会发现username和password的值没有在运行时被改变了。
另外断点设置中 勾选automatically continue after evaluating可以在断点出做完相应的事情而不停住(例如使用lldb命令输出或者修改变量值)
po(print-object)+ 对象
p(print)+ 基本数据类型 int之类
bt 打印最后一次调用堆栈
expr (exchange parameter)/(expression) 动态修改变量
技巧一:运行时修改变量的值
你以前怎么验证是不是某个变量的值导致整段程序不能正常工作?修改代码中的变量的值,然后cmd+r重新启动app?现在你不需要这么做了,只需要设置一个断点,当程序在这进入调试模式后,使用expr命令即可在运行时修改变量的值。假如有一个loginWithUsername:方法,需要两个参数:username,password。
首先设置好断点,如下图所示:
运行app,进入断点模式后,在(lldb)后输入
1 | expr username = @ "username" |
2 | expr password = @ "badpassword" |
1 | (NSString *) $0 = 0x3d3504c4 @ "username" |
2 | (NSString *) $1 = 0x1d18ef60 @ "badpassword" |
1 | (0x1c59aae0) A line for the breakpoint |
2 | (0x1c59aae0) Username and Password after: username:badpassword |
右击断点选择“Edit Breakpoint...”(或者按住cmd+option,单击断点),然后如下图所示设置断点
注意选中了最后一行(“Automatically continue after evaluating”)的选择框,这就保证运行到这个断点的时,填充变量的值,然后继续运行,并不在此处断点进入调试模式。
运行app,你会得到和上述手动设置变量的值一样的输出。
接下来单击断点,使其处于禁用状态,现在箭头的颜色应该是浅蓝色的,重新运行app,你会发现username和password的值没有在运行时被改变了。
另外断点设置中 勾选automatically continue after evaluating可以在断点出做完相应的事情而不停住(例如使用lldb命令输出或者修改变量值)
相关文章推荐
- XCode调试 设置全局断点并快速定位问题代码所在行
- XCode调试 设置全局断点并快速定位问题代码所在行
- XCode里插入调试断点,程序却不停止的解决方法
- Xcode 断点调试,取消直接进入到汇编语言界面处理
- iOS开发之Xcode常用调试技巧总结 断点高级
- 转Xcode 调试技巧 XCode调试技巧–设置全局断点快速定位问题代码所在行[zz]
- Xcode-调试断点不能停在代码区终极解决方案
- 为什么我的XCODE不能断点调试?
- ios 使用xcode调试代码的时候进入断点显示变量全是nil,但NSLog输出那个变量却是有值的
- Xcode调试断点不停止解决方案! 推荐
- Xcode断点调试,po 报错
- xcode反汇编调试iOS模拟器程序(四)自动断点应用之NSNotificationCenter
- xcode 断点调试时候 不能定位到代码那一行的解决办法
- xcode 调试断点
- Xcode开发调试技巧—断点调试
- 在xcode调试断点不能停在代码区的终极解决方案
- Xcode调试断点不停止解决方案!
- xcode反汇编调试iOS模拟器程序(四)自动断点应用之NSNotificationCenter
- XCode调试 设置全局断点并快速定位问题代码所在行
- 使用xcode调试代码的时候进入断点显示变量全是nil,我用NSLog输出那个变量却是有值的,这个是什么原因呢?