我使用以下命令来运行valgrind
。但是./main
的输出将与valgrind
的输出混合。我想将valgrind
的输出保留到stdout。有没有办法忽略./main
的标准输出?谢谢。
valgrind --tool=callgrind --dump-instr=yes --collect-jumps=yes --callgrind-out-file=/dev/stdout ./main
答案 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