[断点调试好助手]LLDB调试
来源:互联网 发布:荷兰留学知乎 编辑:程序博客网 时间:2024/05/01 10:34
初学者刚入门一般都不认识有这一调试工具,学习成本不高,你只要尝试在调试中开始使用调试器LLDB,你会马上感受到调试器给你带来的便利。LLDB是LLVM下的调试器。Xcode从4.0开始编译器开始改用LLVM,相应的调试器也从gdb改为LLDB。而从 Xcode5.0开始所有工程也被自动设置为使用LLDB。
这里借鉴整理了一下别人的blog,作为学习笔记记录供各位参考
使用方法
- 先在需要调试的地方进行打断点,然后运行程序,停止在断电处后…会出现(lldb)字样(在NSLog显示信息的位置(调试框内),单击后便可以输入…)
- 输入命令进行操作
常用命令:
po
- po [self view] 随后调试器会输出这个 object 的 description。
- 在这个例子中可能是这样的信息:
(lldb) po [self view]- (UIView *) $1 = 0x0824c800 <UITableView: 0x824c800; frame = (0 20; 768 1004); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x74c3010>; layer = <CALayer: 0x74c2710>; contentOffset: {0, 0}>
- p (int)[[[self view] subviews] count]
(lldb) po $1(UIView *) $1 = 0x0824c800 <UITableView: 0x824c800; frame = (0 20; 768 1004); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x74c3010>; layer = <CALayer: 0x74c2710>; contentOffset: {0, 0}>
expr
修改值
int i = 2;(--断点在此)NSLog(@"i = %@",i);
(lldb) expr i=2
你会看到如下的输出:
(int) $0 = 2
继续运行程序,程序输出的信息是:
i = 2
变量a的值被改变
除此之外,还可以使用这个命令新声明一个变量对象,如:
expr int $b=2p $b
call
call
call即是调用的意思。其实上述的po和p也有调用的功能。因此一般只在不需要显示输出,或是方法无返回值时使用call。 和上面的命令一样,我们依然在viewDidLoad:里面设置断点,然后在程序中断的时候输入下面的命令:
call [self.view setBackgroundColor:[UIColor redColor]]
运行程序,view的背景颜色变成红色了!
bt
打印调用堆栈,加all可打印所有thread的堆栈。
0 0
- [断点调试好助手]LLDB调试
- LLDB在IOS断点调试
- iOS LLDB调试器和断点调试
- iOS LLDB调试器和断点调试
- GDB和LLDB断点调试指令
- LLDB调试
- LLDB调试
- lldb调试
- lldb 调试
- LLDB调试
- LLdb调试
- LLDB调试
- TRACE 调试的好助手
- iOS调试-通过lldb断点来打印log
- iOS开发之LLDB断点调试和常用命令
- lldb常用调试命令
- LLDB调试命令初探
- LLDB调试命令初探
- 如何取得文件的扩展名
- 如何解决C#中多个panel重叠问题
- sqlserver2008,创建一个用户和对应一个架构,只对这个架构下的表有访问权限
- Jmeter 运行脚本 提示无法登录
- hadoop单个数据节点的不同存储路径的存储策略源码分析
- [断点调试好助手]LLDB调试
- Dart Essentials(读书笔记)——这本书很大篇幅都在谈AngularDart,Zones概念没谈到
- Spring学习笔记——Sprin管理Bean的原理
- [BZOJ 1029][JSOI2007]建筑抢修
- 最大子列和算法
- sql left join的多表应用
- nginx配置文件详解
- Spark开发问题集锦
- grep命令的详细使用方法