Filter 从valgrind';s callgrind输出
我正在尝试为服务器生成一个调用图,用于文档编制不用于任何类型的分析 我使用以下命令生成输出:Filter 从valgrind';s callgrind输出,filter,valgrind,call-graph,Filter,Valgrind,Call Graph,我正在尝试为服务器生成一个调用图,用于文档编制不用于任何类型的分析 我使用以下命令生成输出: sudo valgrind --tool=callgrind --dump-instr=yes /opt/ats-trunk/bin/traffic_server 并用:转换为.dot文件,但其中包含的信息太多,无法用作文档 我想过滤掉对libc、libstdc++、libtcl、libhwloc等库的调用 n、 b:我一直想把那些无用的图书馆翻出来,但这看起来很麻烦,充其量也不完整 非常感谢您提前给
sudo valgrind --tool=callgrind --dump-instr=yes /opt/ats-trunk/bin/traffic_server
并用:转换为.dot文件,但其中包含的信息太多,无法用作文档
我想过滤掉对libc、libstdc++、libtcl、libhwloc等库的调用
n、 b:我一直想把那些无用的图书馆翻出来,但这看起来很麻烦,充其量也不完整
非常感谢您提前给出答案。在这里震耳欲聋的沉默之后,事实上,无论我问到哪里,我都转向valgrind users@ML。以下是线索: Josef的回答非常有帮助,我用perl的耐心编写了一个脚本,帮助我筛选出调用图中不需要的库 该脚本依赖于告诉callgrind要格外详细:
valgrind --tool=callgrind --dump-instr=yes --compress-pos=no \
--compress-strings=no /opt/ats-trunk/bin/traffic_server
通过这种方式,它将生成字符串而不是参考号,使其更易于解析:
#/usr/bin/perl
使用Modern::Perl;
需要文件::Temp;
my$cob=qr{^cob=/(?:usr/)?lib};
my$ob=qr{^ob=/(?:usr/)?lib/;
我的$calls=qr{^calls=};
打开(my$fh,'文件名;
开放式($tmp,'