ios – xcode调试 – 快速将汇编代码转回我的自定义代码
我还是
xcode的新手.我有“在调试时显示反汇编”UNCHECKED但我知道当我逐步执行自己的代码时,在调用系统方法时,我仍会经常被抛入汇编代码中.
我的问题是……有没有办法快速将汇编代码转移到我自己的自定义代码的NEXT行,而不是无休止地点击F6或F8.我知道,事先,我可以在下一个要调用的自定义方法中设置一个新的断点并按下运行按钮,但是当我快速单步执行代码时,我通常不会提前知道调试器何时会抛出我进入汇编代码,当发生这种情况时,要点击“运行到下一个断点”按钮就太晚了.任何帮助赞赏. 编辑 – thx为“继续当前行”建议,但通常当我尝试这样做时,我将光标放在我自己的代码行上,调试菜单下的“继续当前行”命令显示为灰色.另外,我通常不会事先知道代码执行会重新输入我自己的代码,所以我可以把光标放在一个不会被调用的地方.基本上我试图通过逐行逐步学习我的代码的执行顺序.每次我被“抛入”disassemby我不知道提前执行的顺序将重新输入我自己的自定义代码(其中大部分可能是其他人的代码)所以按下继续经常需要我到构建的结束和即时通讯没有更明智的路径.我看到的唯一选择是无休止地按Fn-F8,这是一个正确的痛苦.当然我一定是在遗漏什么? 编辑 – thx @Jim的建议.仍然没有运气,香港专业教育学院尝试了你的代码(lldb)“break set -r.* -s MyBinary”用应用程序的名称替换MyBinary我试图在所有方法中设置断点并且我得到的是“断点2:没有位置(待定). 解决方法
通过一个二进制文件中的函数跟踪执行的一个技巧是使用正则表达式断点来停止该二进制文件中的所有函数,例如:
(lldb) break set -r .* -s MyBinary 然后你可以使用“继续”来代码中的来电.您可以多次提供-s选项以在多个共享库中设置断点. 即使有数以万计的断点,lldb的执行也不会减慢很多,但是如果你正在调试iOS应用程序,最初设置它们可能需要一点点.所以这对于中型图书馆来说是一种可行的技术. 如果您尝试仅在一个线程上跟踪执行,则使用-t选项中断set以将断点限制为该线程. 此外,请记住,您可以禁用此断点中的各个位置.因此,如果你在一些你不关心的函数上遇到一个断点,看看LHS上的源窗口中的PC横幅它会说“Thread 1:breakpoint 1.1”,所以只需: (lldb) break dis 1.1 这样,您可以专注于实际关注的功能. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |