在GDB中使用跟踪点来跟踪代码的执行频率

时间:2013-05-02 10:55:47

标签: gdb trace

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

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

谢谢, 戴夫

2 个答案:

答案 0 :(得分:1)

低于question/answer提供了一个非常好的技巧来获得计数。我认为这样可以毫不含糊地解决你的问题 HTH!

答案 1 :(得分:0)

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

command <breakpoint no.>
  continue
end

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