解决方法
还有其他几种方法可以实现这一点.显然,创建一个静态命中计数器和一个发出和递增一个计数器的NSLog.这是侵扰性的,我找到了一种方法来做到这一点与lldb.
>设置断点
>执行程序,直到您第一次点击断点,并记下您所击中线路右侧的断点号(例如“线程1:断点7.1”,请注意7.1)
>上下文单击断点,然后选择“编辑断点”
>将条件留空并选择“添加操作”
>选择“调试器命令”
>在命令框中,输入“断点列表7.1”(使用断点从第2步开始).我相信你可以使用“信息中断”,如果你使用gdb.
>检查选项“评估后自动继续”
>继续
现在,而不是停止,llvm将发出关于断点的信息,包括它已经被传递的次数.
至于Glenn和Mike之前的答案中的讨论,我将描述一个性能问题,其中函数执行计数是有用的:我的应用程序中有一个特定的操作,其中性能在每次执行操作时都显着降低.仪器时间分析器显示,每次执行操作时,特定功能都要花上两倍的时间,直到应用程序如果重复执行操作才能挂起.通过计数,我能够确定每次执行时,该函数的调用次数是之前执行次数的两倍.那么很容易找到原因,原来是有人在每个事件执行时在NotificationCenter中重新注册通知.这具有将每个执行的响应处理程序调用次数加倍的效果,从而使函数的“成本”增加一倍.知道它是双倍的,因为它被称为两次,而不是因为性能只是越来越糟糕,使我看看调用序列,而不是因为功能本身可能会随着时间的推移而退化.