Perf注释,只显示源代码

我正在使用Perf来执行一些分析实验。

但是,我想知道特定代码区域的结果,在这种情况下,查看每行源代码(本例中为C / C ++)的结果(百分比)将减轻任务的负担。

perf annotate具有显示ASM +源代码的视图,也可以selectclosures显示源代码。 我想知道如何完成这个选项的另一端,也就是说,只显示源代码+其每行事件的百分比,并隐藏ASM输出。 这是可能的性能

其他工具的build议呢? 我也在使用Vtune,但是我不想做的分析工作。 Valgrind没有问题,太慢了。

我在运行Ubuntu 13.04的x64上。

不幸的是, perf-annotate在引擎盖下面使用了objdump ,它似乎不能仅显示源代码(-S暗示-d)。

如果您知道使objdump行为的方式,请参阅tools/perf/util/annotate.c symbol__annotate()

 snprintf(command, sizeof(command), "%s %s%s --start-address=0x%016" PRIx64 " --stop-address=0x%016" PRIx64 " -d %s %s -C %s|grep -v %s|expand", objdump_path ? objdump_path : "objdump", disassembler_style ? "-M " : "", disassembler_style ? disassembler_style : "", map__rip_2objdump(map, sym->start), map__rip_2objdump(map, sym->end+1), symbol_conf.annotate_asm_raw ? "" : "--no-show-raw", symbol_conf.annotate_src ? "-S" : "", symfs_filename, filename);