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

28

在使用lldb调试时,是否有一种方法可以跳过代码行而不必重新编译?

1个回答

50

更新

除了下面的原始答案外,还可以使用jump / j别名来跳过一些行或跳转到特定的行号:

跳过两行:

(lldb) jump +2

跳转到第102行:

(lldb) jump 102

参见 help jump 以获取更多信息。

翻译后

通过给出 --by/-b 标记,可以使用 thread jump 命令实现此目的。例如:

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

另外,可以使用 --line/-l 命令来指定绝对行号,而非相对移动。

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

请注意,这两者都移动了程序计数器,这可能会导致程序进入破损状态并导致崩溃。

3
我能在小项目中使用它,但在大项目中,"thread jump --by 2" 会抛出异常。我也在 WWDC 2018 的调试视频中看到过这种技术。您是否了解在有许多线程的大型项目中的任何解决方法? - Adrian
以上补充说明:我可以通过将代码包装在 DispatchQueue.main.async { do stuff } 中,在主线程上使其正常工作。 - Adrian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接