LLDB中的小技巧
1、打印视图层次结构
po [self.view recursiveDescription]
2、临时调整界面UI
比如说现在你需要改变一个控件的背景色来更好的查看布局的问题,这是就不需要重新跑一下项目:
然后继续执行代码就可以实现更改。call命令也可以实现这个效果。
说是执行(lldb) e (void)[CATransaction flush] 就不用等到继续执行就能看到效果,但是通过实验并没有达到想要的效果。
e 命令还可以定义变量,然后再调试中使用:
我们可以使用e命令定义变量,然后在调试中使用。看如下的例子:
1
2
3
4
5
6
7
8
9
10
11
12
|
(lldb) e NSString *$str = @"http://www.huangyibiao.com"
(lldb) po $str
http://www.huangyibiao.com
(lldb) e int $count = 10
(lldb) p $count
(int) $count = 10
(lldb) e NSArray *itemArray = @[@"Test", @"Demo", @"huangyibiao"]
(lldb) po $count
10
|
我们使用e声明了$str变量,然后下面就可以使用了。我们看到通过p命令打印出来的都是$开头的变量了吗?我们在声明和使用时也需要加上$符号,与PHP一样!
在调试时,有时候想临时计算一下某个值来比较时,就可以通过这种方式来实现了,再也不用到源代码处添加上声明实现然后添加一句打印了,是否便利了很多?
3、修改变量值
expr variable = newValue
4、监测某一个内存地址的内同改变
watchpoint set -v variable
如下图:
5、条件断点
在“Edit Breakpoint…”中可以填入需要满足断点的条件,满足条件就会断住程序。
其中还可以添加action:
同时也可以在Debugger中修改变量的值,同样适用expr,如下图:
下面打上勾是让程序运行到这个位置不被断住。
也可以在Log Message 中实现在调试过程中不用加入NSLog就能方便的输出日志的需求。
6、随着xcode版本的跟新,好多以前可以在debug中的堆栈信息中看到函数的调用顺序,但是,现在的xcode隐藏了一些信息,如果想看完整的调用堆栈就使用bt命令,显示函数调用的堆栈。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· 程序员常用高效实用工具推荐,办公效率提升利器!
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 【译】WinForms:分析一下(我用 Visual Basic 写的)