如何重定向程序 Valgrind is 运行 on 的输出?
How to redirect the output of the program Valgrind is running on?
问题背景:
我运行这样的命令:
$ valgrind ./my_program < 1.in
而且我收到了 Valgrind 关于泄漏和错误的消息以及 my_program.
的输出 stdout 和 stderr 流
问题:
我想要 redirect/mute my_program 的所有流(stdout 和 stderr)。
到目前为止我学到了什么:
运行 > /dev/null
不会使 my_program.
的标准错误流静音
运行 > /dev/null 2> /dev/null
将 my_program 的所有输出流与 Valgrind 的消息一起静音。
根据此线程:How to redirect Valgrind's output to a file? Valgrind 能够使用 valgrind --log-file="filename"
.
将其输出直接流式传输到日志文件
可能的解决方案:
我想出了这样的解决方案
$ valgrind --log-file="filename" ./my_program < 1.in && cat filename
有更简单的方法吗?
要将 valgrind 和应用程序输出分开,您可以将 valgrind 输出重定向到另一个文件描述符:
valgrind --log-fd=9 9>>test.log ./app
这可能有点晚了,但我 运行ning valgrind 3.10.1 on ubuntu,你可以简单地使用 --log-file=<filename>
标志。
IE。 运行:
valgrind [args] --log-file=<filename> ./my_program
根据我对问题的理解,这是我找到的适合我的答案:
valgrind --log-fd=9 [program] 9>&1 1>/dev/null 2>/dev/null
这会将 valgrind 消息输出到 stdout,但程序的 stdout 和 stderr 会转到 /dev/null。重定向的顺序很重要,如 here.
所述
“-q”选项也将限制 valgrind 仅出错。
问题背景:
我运行这样的命令:
$ valgrind ./my_program < 1.in
而且我收到了 Valgrind 关于泄漏和错误的消息以及 my_program.
的输出 stdout 和 stderr 流问题:
我想要 redirect/mute my_program 的所有流(stdout 和 stderr)。
到目前为止我学到了什么:
运行
的标准错误流静音> /dev/null
不会使 my_program.运行
> /dev/null 2> /dev/null
将 my_program 的所有输出流与 Valgrind 的消息一起静音。根据此线程:How to redirect Valgrind's output to a file? Valgrind 能够使用
将其输出直接流式传输到日志文件valgrind --log-file="filename"
.
可能的解决方案:
我想出了这样的解决方案
$ valgrind --log-file="filename" ./my_program < 1.in && cat filename
有更简单的方法吗?
要将 valgrind 和应用程序输出分开,您可以将 valgrind 输出重定向到另一个文件描述符:
valgrind --log-fd=9 9>>test.log ./app
这可能有点晚了,但我 运行ning valgrind 3.10.1 on ubuntu,你可以简单地使用 --log-file=<filename>
标志。
IE。 运行:
valgrind [args] --log-file=<filename> ./my_program
根据我对问题的理解,这是我找到的适合我的答案:
valgrind --log-fd=9 [program] 9>&1 1>/dev/null 2>/dev/null
这会将 valgrind 消息输出到 stdout,但程序的 stdout 和 stderr 会转到 /dev/null。重定向的顺序很重要,如 here.
所述“-q”选项也将限制 valgrind 仅出错。