如何跟踪特定用户流中不同文件中调用的所有方法?
将断点放在不同的点并观察回溯似乎不是最有效的方法。
相反,我想 -
1)在感兴趣的项目中的所有方法上放置一个断点。
2)使所有断点运行调试器命令,该命令打印出文件名和方法名称。
3)编辑断点,以便在命中断点后程序继续执行。 (编辑特定内容时,此选项可用 断点。)所以我们不要在任何断点处停下来。
4)禁用所有断点,直到达到我需要处理的流程。
5)在开始流之前启用所有断点。 使用这种方法,我们不必手动将断点放在不同的位置以理解执行流程。流程完成后,我可以查看调试器控制台并找出执行流程。
现在,问题 - 我们如何使用lldb命令执行此操作? 非常感谢任何意见/建议。
答案 0 :(得分:1)
您无法使用Xcode断点接口执行此操作,但在lldb控制台中您可以执行以下操作:
(lldb) break set -r . -s AppName
Breakpoint 1: 478 locations.
(lldb) br com add
Enter your debugger command(s). Type 'DONE' to end.
> bt
> continue
> DONE
(lldb)
设置"符号名称匹配正则表达式断点"在名为AppName的二进制/共享库中的所有名称("。"匹配所有内容)上。如果不使用-s选项,它将匹配所有符号。那会很有效但很慢......
该命令打印一个回溯并继续。
这只会产生一个断点,所以你可以这样做:
(lldb) break disable 1
直到你需要它,然后启用它:
(lldb) break enable 1
如果您只想捕捉一些方法,可以调整正则表达式,如果您发现自己对某些地方不感兴趣,可以单独禁用断点内的位置。这样做了。
(lldb) break list 1
将显示所有位置,并且:
(lldb) break disable 1.2-1.10 1.15
等。将禁用位置。
这可能会有点慢,因为你的应用程序将启动&一直停下来。但它会做你要求的。
答案 1 :(得分:0)
您可以在不同文件中的所有方法上放置断点,并在该方法中跟踪执行情况,单击Stepover。
Step over - shortcut - f6, it stops execution at next loc.
另外,您也可以在输出窗口中输入“po VariableName”来检查特定变量或数组的值。
答案 2 :(得分:0)
您可以通过添加符号异常断点来添加相关方法名称。