1

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

前任:

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

或者类似这样的东西,可以线性地查看执行流程,而无需在每个类的每个方法中进行 Log 调用?

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

谢谢

4

3 回答 3

1

这可能会有所帮助:_penter hook

这是一个例子

于 2013-11-04T15:05:08.343 回答
0

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

于 2012-11-18T06:30:41.040 回答
0

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

有关C++ 示例,请参阅此内容。

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

aspect Tracer
{ 
   advice call("% %Iter::Reset(...)") : before()
   {
      cerr << "about to call Iter::Reset for " << JoinPoint::signature() << endl;
   }
};
于 2013-11-04T15:09:14.283 回答