xcodedebugging – 迅速将汇编代码移回到我的自定义代码中

我还是新来的Xcode。 我有“debugging时显示反汇编”UNCHECKED,但我知道,当我通过我自己的代码,我仍然会定期抛出进入汇编代码时调用系统方法。

我的问题是……有没有什么办法可以快速地将汇编代码移到自定义代码的NEXT行,而不是无休止地碰到F6或F8。 我知道,事先我可以在下一个被调用的自定义方法中设置一个新的断点,然后按下运行button,但是当我快速地通过我的代码时,我通常不会提前知道debugging器会抛出我进入汇编代码,当这种情况发生的时候,点击“run to next breakpoint”button就太晚了。 任何帮助赞赏。

编辑 – thx为“继续当前行”的build议,但往往当我尝试做到这一点,我把光标放在我自己的代码的一行,debugging菜单下的“继续当前行”命令是灰色的。 另外我通常不知道在哪里代码执行将重新input我自己的代码,所以我可以将光标放在一个地方,不会被称为无论如何。 基本上我试图通过一行一行地学习我的代码的执行顺序。 每当我被“扔”进入dissassemby我不知道在哪里执行的顺序将重新input我自己的自定义代码(其中大部分可能是其他人的代码),所以按继续往往带我到底的构build和IM没有比这更明智的道路了。 我看到的唯一select是无休止地按Fn-F8,这是一个正确的痛苦。 当然,我必须错过什么?

编辑 – thx @Jim为您的build议。 仍然没有运气,ive试过你的代码(lldb)“打破设置-r。* -s MyBinary”用MyBinaryreplace应用程序的名称我试图设置所有方法的断点,我得到的是“Breakpoint 2:no locations (待定)警告:无法解决断点到任何实际的位置我做了一个谷歌search这个到这个页面如何自动设置XCode中的所有方法的断点和该页面指示单词断集应该断点设置和那里没有*之后,所以我试过,同样的错误信息出现,没有断点设置。

在一个二进制文件中通过函数跟踪执行的一个技巧是使用正则expression式断点来停止二进制文件中的所有函数,例如:

(lldb) break set -r .* -s MyBinary 

然后你可以使用“继续”从你的代码中打电话到打电话。 您可以多次提供-s选项以在多个共享库中设置断点。

即使有成千上万的断点,lldb的执行速度也不会太慢,但是如果你正在debugging一个iOS应用程序,初始设置它们可能会稍微有些麻烦。 所以这对于中型图书馆来说是一个可行的技术。

如果您试图在一个线程上跟踪执行,那么使用-t选项来break set以限制该线程的断点。

此外,请记住,您可以禁用此断点内的个别位置。 所以如果你在某些你不关心的函数上find一个断点,看看LHS的源代码窗口中的PC横幅,它会像“线程1:断点1.1”那样说:

 (lldb) break dis 1.1 

这样,您可以专注于您实际关心的function。

当您点击汇编代码时,在编辑器窗口中切换到您的代码并将光标放在您要跳转的行上。 接下来,在键盘上点击^⌘C ,debugging器将运行到编辑器中的当前行。 在Debug菜单下, ^⌘CContinue to Current Line