如何使用 lldb 跳过几行代码?

Posted

技术标签:

【中文标题】如何使用 lldb 跳过几行代码?【英文标题】:How to skip a couple of lines code with lldb? 【发布时间】:2015-08-08 23:27:33 【问题描述】:

有没有办法在使用 lldb 进行调试时跳过代码行而无需重新编译?

【问题讨论】:

【参考方案1】:

更新

除了下面的原始答案之外,jump/j 别名可用于跳过多行或跳到特定行号:

向前跳过两行:

(lldb) jump +2

跳到第 102 行:

(lldb) jump 102

请参阅help jump 了解更多信息。

原创

这可以使用thread jump 命令通过提供--by/-b 标志来实现。示例:

(lldb) thread jump --by 2
(lldb) th j -b 2

或者,可以使用--line/-l 指定绝对行号,而不是相对移动。

(lldb) thread jump --line 102
(lldb) th j -l 102

请注意,它们都会移动程序计数器,这可能会使程序进入损坏状态并导致崩溃。

【讨论】:

我已经能够在一个小项目中使用它,但是在一个大项目中thread jump --by 2 会抛出异常。我也在 WWDC 2018 调试视频中看到了这种技术。您是否知道针对具有大量线程的大型项目的任何解决方法? 上面的附录:我可以通过包装 DispatchQueue.main.async do stuff 让它在主线程上工作。

以上是关于如何使用 lldb 跳过几行代码?的主要内容,如果未能解决你的问题,请参考以下文章

使用pandas读取csv文件时如何选择多行?

将数据导入 Access 时如何跳过 Excel 中的前几行?

Swift之深入解析如何将代码添加为自定义LLDB命令

在lldb调试中调用c++函数 - 如何使用QuartzCore里面的日志消息

Swift之深入解析如何使用Xcode和LLDB v2修改UI元素

lldb - 如何杀死卡在无限循环中的命令