我想问你一些可能不正确的问题,
我用C编写程序并在
中翻译gcc -Wall -pedantic
并运行
valgrind --simulate-cache=yes --tool=callgrind ./a.out
创建 callgrind.out。[pid-number] 如果我跑
callgrind_annotate callgrind.out.[pid] main.c
out将是
- 用户注释的来源:main.c
没有为main.c收集任何信息
是否可以为程序优化工具注释代码和函数调用?
注意
gcc -g - pg progrma.c
无法正常工作,因为Apple不支持gcc上的调试选项,gprof也不受支持。并且KDE程序不想在Mac上运行... 感谢大家提供有用的信息如何解决它
答案 0 :(得分:1)
使用gprof
进行编译时,您正在使用-pg
分析信息进行编译。 valgrind实际上并不需要这些数据来进行分析,它需要的是调试信息。
使用valgrind-HEAD,我使用了一段简单的代码并在没有-g
的情况下编译它并得到了与您相同的结果 - 即No information has been collected for main.c
。
当我使用-g
进行编译时,我获得了有关main.c
的有用信息,即使我使用优化进行编译,我也获得了有用的信息。
您需要使用-g
进行编译,而不是使用-pg
进行编译,以使其与callgrind一起使用。