如何将Valgrind的输出redirect到一个文件?

在使用Valgrind工具时,我需要loggingvalgrind工具生成的详细信息。 我怎么能做到这一点? 我尝试了一些像

valgrind a.out | test 

  valgrind a.out > test 

它给出了程序的输出,而不是valgrind内存错误,泄漏信息。 即使我得到这样的程序如果不需要用户交互(即给予input)。 如果程序需要用户input,那么这个东西本身就不能工作。

我怎样才能做到这一点?

 valgrind --log-file="filename" 

默认情况下,Valgrind将其输出写入stderr。 所以你需要做一些事情:

 valgrind a.out > log.txt 2>&1 

或者,你可以告诉Valgrind写在别的地方; 见http://valgrind.org/docs/manual/manual-core.html#manual-core.comment (但我从来没有尝试过)。

你也可以设置选项–log-fd,如果你只是想用较less的读取你的日志。 例如 :

 valgrind --log-fd=1 ls | less