我想问你一些问题什么是不正确的,
我用C语言写了一个程序并翻译成
gcc -Wall -pedantic
然后跑
valgrind --simulate-cache=yes --tool=callgrind ./a.out
创建callgrind.out。[pid编号]
如果我跑
callgrind_annotate callgrind.out.[pid] main.c
我会的
--用户注释源:main.c
没有为main.c收集任何信息
有没有办法为程序优化工具的代码和函数调用添加注释?
笔记
gcc -g - pg progrma.c
无法工作,因为gcc和gprof上的Apple unported debug选项也不受支持。KDE程序不想在Mac上运行。。。
感谢大家提供的有用信息
最佳答案
使用gprof
编译时,使用-pg
配置信息进行编译。valgrind实际上并不需要这些数据来进行分析,它需要的是调试信息。
使用valgrind HEAD,我获取了一段简单的代码,并编译了它而没有-g
,得到了与您相同的结果-即No information has been collected for main.c
。
当我使用-g
编译时,我得到了关于main.c
的有用信息,即使使用优化编译时,我也得到了有用的信息。
长短不一的是,您需要使用-g
来编译,而不是使用-pg
来使用callgrind。
关于c - Callgrind注解在OS X 10.10中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32677475/