记录函数调用的工具?

时间:2012-11-18 03:01:39

标签: c++ debugging utility

是否有可以记录函数调用和传递内容的C ++工具?

例如:

Display::Resize(1024,768)
Player::Jump()
...

或者类似的东西,在每个类的每个方法中没有Log调用的情况下线性地看到执行流程?

我使用Visual Studio作为IDE,但任何可以做到这一点的外部工具或插件都会很棒。有没有?

由于

3 个答案:

答案 0 :(得分:1)

这可能会有所帮助:_penter hook

这是一个example

答案 1 :(得分:0)

您可以设置断点,在您使用调试器调用您感兴趣的函数时自动打印回溯,或者使用xtrace等专用工具。

答案 2 :(得分:0)

更奇特的解决方案可能是看Aspect-Oriented Programming。一个基本的例子是记录函数调用。

有关C ++示例,请参阅this

编辑:AspectC ++中的一个小例子,用于跟踪成员函数的调用(在这种情况下为Iter :: Reset)

aspect Tracer
{ 
   advice call("% %Iter::Reset(...)") : before()
   {
      cerr << "about to call Iter::Reset for " << JoinPoint::signature() << endl;
   }
};