我遇到了这篇引人入胜的文章(关于reddit):Visualize function calls with Graphviz
它解释了如何使用:GNU编译器工具链,Addr2line实用程序,自定义粘合代码和Graphviz来为函数调用创建可视化。
我真的想在我的代码中实现这个,除了问题是我的代码是基于Windows的。我正在使用Microsoft c ++编译器。
本文解释了如何使用GCC为进入和退出提供的分析功能:
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的工作吗?