gpt4 book ai didi

c++ - 使用 Graphviz for Windows 程序可视化函数调用

转载 作者:行者123 更新时间:2023-11-28 08:19:38 25 4
gpt4 key购买 nike

我看到了这篇引人入胜的文章(在 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));

微软c++编译器有没有提供这样的入口和导出的profiling函数?这是第一个问题。

第二个问题是我找不到任何 Addr2line utility适用于windows环境。基本上它会告诉您文件名、函数名和内存地址的行号。有什么方法可以实现 Addr2line 的功能吗?

最佳答案

您可以使用 /Gh 编译器选项 Hook 函数调用入口和/或 /GH Hook 函数调用导出。

在 MSDN 上有一个很好的例子 here .

然后您可以使用 DIA(调试接口(interface)访问)SDK 获取输入的函数的名称。

here 有一个端到端的例子.

关于c++ - 使用 Graphviz for Windows 程序可视化函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6352585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com