将callgrind设置为valgrind的默认工具

问题描述 投票:0回答:2

我需要使用 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。 任何提示将不胜感激!

ubuntu valgrind
2个回答
2
投票

您可以在 shell 中创建别名:

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

并调用脚本:

$ ./the_script

别名将在脚本内扩展为

valgrind --tool=callgrind


2
投票

由于 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"
© www.soinside.com 2019 - 2024. All rights reserved.