Ios 如何设置断点,该断点在*touchesStart之后在当前应用程序target*中的第一个命令上触发:

Ios 如何设置断点,该断点在*touchesStart之后在当前应用程序target*中的第一个命令上触发:,ios,xcode,debugging,lldb,symbolic-breakpoint,Ios,Xcode,Debugging,Lldb,Symbolic Breakpoint,我想做的是在touchesbeated:withEvent上设置一个符号断点,但它会继续并在当前应用程序目标中执行的下一个命令上停止 这样,在调试其他人的代码时,我可以在空闲时打开断点,然后当我触摸一个控件时,我将在应用程序处理程序上着陆 如果可以在第一个断点中设置一个由第二个断点检查的条件,我可能会这样做。我不知道您将如何识别“在当前应用程序目标中执行的下一个命令”?但听起来好像你知道如何在任何地方设置断点。因此,您可以让touchestarted:WithEventBreakpoint的命令

我想做的是在touchesbeated:withEvent上设置一个符号断点,但它会继续并在当前应用程序目标中执行的下一个命令上停止

这样,在调试其他人的代码时,我可以在空闲时打开断点,然后当我触摸一个控件时,我将在应用程序处理程序上着陆


如果可以在第一个断点中设置一个由第二个断点检查的条件,我可能会这样做。

我不知道您将如何识别“在当前应用程序目标中执行的下一个命令”?但听起来好像你知道如何在任何地方设置断点。因此,您可以让touchestarted:WithEventBreakpoint的命令实际设置第二个断点。见:

(lldb) help breakpoint set
有关如何执行此操作的更多详细信息

您还可以使用Python断点命令来执行这类操作。所有断点命令共享一个公共模块范围,因此如果在一个断点的命令中创建Python变量,则可以在第二个断点的Python命令中读取该变量

目前还没有在Xcode中添加Python断点命令的方法,因此您必须使用lldb命令行来实现这一点。lldb命令:

(lldb) help breakpoint command add
将向您提供有关如何执行此操作的一些详细信息,以及此页面:


有更多细节。

感谢您的建议-我没有考虑在第一个触发器案例中添加断点,而是创建并禁用了它,并通过触发器上的断点编号启用它(这不起作用)。FWIU,当你设置一个符号断点时,将你的应用程序目标名称放在'Module'字段将创建一个只在我的应用程序代码上中断的条件。我不建议最初启用断点,因为Xcode不提供引用另一个断点的方法,所以你必须设置两个断点,转到lldb控制台,执行“中断列表”获取目标断点的编号,然后将其放入触发器命令中。如果您再添加任何断点,那么这个数字可能不再正确,这使得这种方法很脆弱。但是如果您发现在触发器处停止并启用正确的断点编号并继续不起作用,请在上提交一个bug。这应该行得通。