使用gprof显示模板化方法的调用图的参数格式?

Posted

技术标签:

【中文标题】使用gprof显示模板化方法的调用图的参数格式?【英文标题】:Format of parameter to display call graph for templated method with gprof? 【发布时间】:2009-07-31 01:56:30 【问题描述】:

使用 gprof 显示模板类中方法的函数调用图的命令行格式是什么?

对于简单的 C 方法,您可以这样指定:

gprof -f foo myprogram > gprof.output

如何从以下指定方法parse

template <typename T> class A

    public:
        template <typename X> bool parse(X& x, char*buf)
         ... lots of code here ...;
        
;

【问题讨论】:

【参考方案1】:

这里是可以解析这个的 python 脚本:gprof2dot。该页面也有进一步的参考。

就我个人而言,我喜欢Google Performance Tools,除其他外,它还可以直接生成调用图(通过graphviz / dot)。

【讨论】:

我需要在命令行上为模板化方法指定给 gprof 的格式...例如它需要完整的规范还是只需要方法名称? ...【参考方案2】:

我相信函数名称中使用了 C++ 模板参数和 arg 类型。您可以在探查器输出文件上使用 sed。

此工具也可以将它们从输出文件中解析出来:http://linux.wareseeker.com/download/gprof2dot.py-0.3.rar/331443

【讨论】:

【参考方案3】:

我追求的是在命令行上使用的实际格式。我可以通过查看生成的文件来查看编译的符号,但我不确定在命令行上使用什么格式。无论如何感谢所有答案。

【讨论】:

以上是关于使用gprof显示模板化方法的调用图的参数格式?的主要内容,如果未能解决你的问题,请参考以下文章

关于gprof和gprof2dot生成的图的一些疑惑

Linux性能调优之gprof和oprofile

程序性能调优工具之gprob

如何使用 gprof 分析系统调用?

在标头之间调用时,模板实例化无法匹配重载流运算符的参数列表

gprof 输出显示不存在的调用图边缘