0

我一直在使用感兴趣的 C++ 函数上的跟踪点在 Graphviz 中构建动态调用图。我在断点 UI 中使用的语法是

"$CALLER" -> "$FUNCTION";

不幸的是,输出并不是我所需要的,因为虽然 $FUNCTION 扩展为完整签名,但 $CALLER 没有。有没有办法以与 $FUNCTION 相同的格式获取调用者的签名?没有它,我的调用图上的节点名称不匹配。(我可以通过在事后删除被调用者的签名来解决这个问题,但这会合并对重载函数的调用,并不理想。)

在 VS 2010 中,有一个规定可以在遇到断点时调用宏。既然不再支持宏,那么在 VS 2012 中是否有替代品?

或者有没有更简单的方法来获取这些信息?(我有性能向导,但我不认为它具有与调试器相同的保真度,因为它使用 CPU 采样。而且 C++ 不支持 Intellitrace,所以即使我有 Ultimate 版也不会一个选项。)

谢谢你。

4

1 回答 1

1

使用 Visual Studio 收集此信息的一个好方法是在“仪器模式”下使用 Visual Studio Profiler。有关详细信息,请参阅MSDN

您应该能够配置探查器以收集整个调用图并且支持 C++ 集合。

于 2013-08-27T17:44:42.097 回答