将callgrind设置为valgrind的默认工具

时间:2017-10-25 12:54:30

标签: ubuntu valgrind

我需要用callgrind配置一个程序,它由一些脚本启动,我无法控制。我可以告诉脚本启动valgrind,但我不能告诉脚本使用哪些工具或参数。

我在valgrind手册中发现,可以使用变量$VALGRIND_OPTS.valgrindrc文件。 这适用于特定于工具的选项。例如,我可以写~/.valgrindrc

--callgrind:callgrind-out-file=<somefile>

当我执行一些测试程序a.out

valgrind --tool=callgrind a.out

输出文件按照.valgrindrc中的定义编写。 但我无法指定我想要使用的工具(callgrind)。

我试过了:

--tool=callgrind

--valgrind:tool=callgrind

两者都没有效果,默认情况下启动memcheck。 任何提示都将不胜感激!

2 个答案:

答案 0 :(得分:2)

您可以在shell中创建别名:

$ alias valgrind="valgrind --tool=callgrind"

并调用脚本:

$ ./the_script

别名将在脚本内扩展为valgrind --tool=callgrind

答案 1 :(得分:1)

由于Valgrind是开源的,你可以获取代码,修改它并构建你自己的默认为callgrind的版本。您需要修改的行在coregrind / m_options.c中。这是3.13:

const HChar *VG_(clo_toolname) = "memcheck";    // default to Memcheck

以下参数在early_process_cmd_line_options(coregrind / m_main.c)中处理。这些是无法从RC文件或环境中读取的选项。

--version"
"-v"/"--verbose"
"-q"/"--quiet"
"-h"/"--help"
"--help-debug"
"--tool"
"--max-stackframe"
"--main-stacksize"
"--max-threads"
"--sim-hints"