我想计算在测试运行期间执行某个函数或代码行的频率。我的想法是在一行中使用 GDB 设置一个跟踪点,然后计算跟踪点被命中的频率。谁能告诉我是否/如何实现这一点。我可以为跟踪点找到的唯一功能是拍摄寄存器快照或保存变量的值。我认为我的答案可能与 passcount 值有关,但我不知道如何实现我想要的。
如果需要更多信息或细节,请告诉我,
谢谢,戴夫
下面的问题/答案提供了一个非常好的计数方法。我认为这将毫无歧义地解决您的问题。
!
我从未使用过跟踪点,但您可以使用断点实现相同的目的。只需定义一个断点,然后定义一个这样的命令
command <breakpoint no.>
continue
end
这将导致 GDB 在断点被命中后简单地继续,但它仍然会增加命中计数器。请注意,这将显着减慢您的流程。如果您在 Linux 上,另一种选择是使用 valgrind(callgrind 子命令)。