【发布时间】:2011-06-15 03:03:01
【问题描述】:
我看到了这篇引人入胜的文章(在 reddit 上):Visualize function calls with Graphviz
它解释了如何使用:GNU 编译器工具链、Addr2line 实用程序、自定义粘合代码和 Graphviz 来为您的函数调用创建可视化。
我真的很想在我的代码中实现这一点,但问题是我的代码是基于 Windows 的。我正在使用 Microsoft c++ 编译器。
文章解释了如何使用 GCC 提供的 profiling 函数进行进入和退出:
void __cyg_profile_func_enter( void *func_address, void *call_site )
__attribute__ ((no_instrument_function));
void __cyg_profile_func_exit ( void *func_address, void *call_site )
__attribute__ ((no_instrument_function));
Microsoft c++ 编译器是否提供了这样的入口和出口分析函数? 这是第一个问题。
第二个问题是我找不到任何适用于 windows 环境的Addr2line utility。基本上它会告诉你内存地址的文件名、函数名和行号。有什么办法可以做 Addr2line 的工作吗?
【问题讨论】:
标签: c++ visual-studio gcc profiling graphviz