如何让调试器停在任何地方?

时间:2009-11-25 15:04:48

标签: cocoa cocoa-touch xcode debugging

示例:我在模拟器中运行我的应用程序。然后我想知道当我触摸按钮时究竟发生了什么。通常情况下,我首先必须找出所有这些疯狂的切入点,以便设置一个断点。但现在假设我的应用程序有700个类,它非常复杂,有超过12.000种方法。机会很大我根本不知道在哪里放置断点。只是在理论上。

如何让调试器在下次发生某事时停止?我知道我可以在我的应用程序运行时打开/关闭它,这很好,但有没有办法让它的行为就像应用程序中的每一行都有一个断点?希望你知道我的意思。我的英语太可怕了。谢谢。

3 个答案:

答案 0 :(得分:2)

您需要的是符号断点。有关简要说明,请查看here

答案 1 :(得分:2)

我不确定您所请求的技术在实践中是否真的可用,但在-[UIApplication sendEvent:]和/或-[UIApplication sendAction:to:from:forEvent:]上添加符号断点至少会在触发事件/执行操作时中断尝试逐步完成每一行。

当它中断时,您可以继续执行“跳过”命令,如另一个答案中所述,以查找相关的代码部分。您可以使用其他可能更接近您所寻找的断点。

答案 2 :(得分:1)

  

...有没有办法让它表现得好   比如应用程序中的每一行都有一个   断点吗?

听起来你问的是“跳过”命令。您设置一个断点,以便应用程序停在特定行。然后,您可以使用“step over”命令移动每个后续代码行。这使您可以详细查看每一行的执行情况。

您不能逐行运行整个应用程序,因为调试器必须逻辑上遵循每个命令,包括来自编译库的命令。如果你试图从发布开始跟踪每个命令,那么只需几个小时就可以通过程序集进入初始视图。