运行valgrind时是否可以忽略程序的标准输出?

时间:2019-01-07 19:11:00

标签: valgrind

我使用以下命令来运行valgrind。但是./main的输出将与valgrind的输出混合。我想将valgrind的输出保留到stdout。有没有办法忽略./main的标准输出?谢谢。

valgrind --tool=callgrind --dump-instr=yes --collect-jumps=yes --callgrind-out-file=/dev/stdout ./main

1 个答案:

答案 0 :(得分:0)

在重定向之前,您可以使用/proc/$$/fd/1引用调用外壳程序中的原始标准输出,如下所示:

valgrind --tool=callgrind --callgrind-out-file=/proc/$$/fd/1 /bin/echo foo > /dev/null

如果系统不支持/proc/$$/fd,但是具有/dev/fd(对于当前进程),则可能可行(在脚本内,使用bash):

exec {old_stdout}>&1
valgrind --tool=callgrind --callgrind-out-file=/dev/fd/$old_stdout /bin/echo foo > /dev/null