1

我想问你一些问题什么是不正确的,

我用 C 写了一个程序并翻译成

gcc -Wall -pedantic

并运行

valgrind --simulate-cache=yes --tool=callgrind ./a.out

创建callgrind.out.[pid-number] 如果我运行

callgrind_annotate callgrind.out.[pid] main.c

出来会


-- 用户注释来源:main.c


没有为 main.c 收集信息

有什么方法可以注释程序优化工具的代码和函数调用吗?

笔记

gcc -g - pg progrma.c

无法正常工作,因为 Apple 不支持 gcc 和 gprof 上的调试选项也不支持。而且KDE程序不想在Mac上运行...感谢大家提供有用的信息如何解决它

4

1 回答 1

1

gprof当您使用-pg. valgrind 实际上并不需要这些数据来进行分析,它需要的是调试信息。

使用 valgrind-HEAD,我采用了一段简单的代码并在没有的情况下对其进行了编译,-g并得到了与您相同的结果 - 即No information has been collected for main.c

当我用 编译时-g,我得到了关于 的有用信息main.c,即使当我用优化编译时,我也得到了有用的信息。

总而言之,您需要使用 编译-g,而不是-pg使用 callgrind 进行编译。

于 2015-09-20T10:29:29.297 回答