【发布时间】:2015-08-08 23:27:33
【问题描述】:
有没有办法在使用 lldb 进行调试时跳过代码行而无需重新编译?
【问题讨论】:
有没有办法在使用 lldb 进行调试时跳过代码行而无需重新编译?
【问题讨论】:
除了下面的原始答案之外,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 } 让它在主线程上工作。