1

我想计算在测试运行期间执行某个函数或代码行的频率。我的想法是在一行中使用 GDB 设置一个跟踪点,然后计算跟踪点被命中的频率。谁能告诉我是否/如何实现这一点。我可以为跟踪点找到的唯一功能是拍摄寄存器快照或保存变量的值。我认为我的答案可能与 passcount 值有关,但我不知道如何实现我想要的。

如果需要更多信息或细节,请告诉我,

谢谢,戴夫

4

2 回答 2

1

下面的问题/答案提供了一个非常好的计数方法。我认为这将毫无歧义地解决您的问题。

于 2013-05-02T13:13:51.187 回答
0

我从未使用过跟踪点,但您可以使用断点实现相同的目的。只需定义一个断点,然后定义一个这样的命令

command <breakpoint no.>
  continue
end

这将导致 GDB 在断点被命中后简单地继续,但它仍然会增加命中计数器。请注意,这将显着减慢您的流程。如果您在 Linux 上,另一种选择是使用 valgrind(callgrind 子命令)。

于 2013-05-02T11:18:45.403 回答