是否有 C++ 工具可以记录函数调用和传递的内容?
前任:
Display::Resize(1024,768)
Player::Jump()
...
或者类似这样的东西,可以线性地查看执行流程,而无需在每个类的每个方法中进行 Log 调用?
我使用 Visual Studio 作为 IDE,但任何可以做到这一点的外部工具或插件都会很棒。有吗?
谢谢
这可能会有所帮助:_penter hook
这是一个例子:
您可以设置断点,以便在使用调试器调用您感兴趣的函数时自动打印回溯,或者使用专门的工具,如xtrace。
一个更奇特的解决方案可能是看看Aspect-Oriented Programming。一个基本示例是记录函数调用。
有关C++ 示例,请参阅此内容。
编辑:来自 AspectC++ 的一个小示例,用于跟踪来自成员函数的调用(在这种情况下为 Iter::Reset)
aspect Tracer
{
advice call("% %Iter::Reset(...)") : before()
{
cerr << "about to call Iter::Reset for " << JoinPoint::signature() << endl;
}
};