首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kcachegrind。仅显示我的代码中的函数

Kcachegrind。仅显示我的代码中的函数
EN

Stack Overflow用户
提问于 2016-10-28 20:25:43
回答 4查看 3.1K关注 0票数 12

我想分析一下我的代码。所以我这么做了:

代码语言:javascript
复制
valgrind --tool=callgrind my_program [programm arguments]
kcachegrind callgrind.out.x

现在我有了这样的kcachegrind窗口:

有很多核心函数和库函数,但是我如何设置valgrindkcachegrind来跟踪我的代码中只有函数(当然是调用库函数)?

预期的输出是这样的:

代码语言:javascript
复制
  time  number of calls            function_name()
  4,52%  569854          CSim2Sim  my_function1(int argc, char* argv[])
  3,52%  452158          CSim2Sim  my_function2(int argc, char* argv[])
  3,52%  36569           CSim2Sim  my_function3(int argc, char* argv[])
  1,52%  1258            CSim2Sim  my_function4(int argc, char* argv[])
EN

回答 4

Stack Overflow用户

发布于 2016-11-07 17:26:05

转到查看ELF分组并选择->对象。在相应的工具视图中,选择您的应用程序/库ELF对象,它将只显示其中的函数。

但是,您将无法获得所需的输出。您不能使用Valgrind测量时间,它只计算指令数,并且可以估计周期计数和缓存未命中。而且callgrind也不会显示完整的函数签名,它总是会删除参数,只显示函数名。

票数 5
EN

Stack Overflow用户

发布于 2016-11-03 12:57:49

Valgrind提供了工具来抑制特定对象文件或某些库中特定错误或错误。检查此link

按照此说明,您可以准备您的抑制文件(如a.supp)并将其传递给valgrind

valgrind --tool=callgrind --suppressions=/path/to/a。支持my_program程序参数

我没有使用过kcachegrind,但我确信它一定提供了一些工具来更改valgrind的命令行选项。

票数 3
EN

Stack Overflow用户

发布于 2016-10-28 23:16:28

当你在os x上时,你可以试试profilingviewer,它可以隐藏基于可定制预设的系统功能。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40305076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档