在使用瓦尔研磨工具时,我需要记录瓦尔研磨工具生产的详细信息。我怎么才能做到呢?我试着说,
valgrind a.out | test
还有
valgrind a.out > test
它只给出了程序的输出,而没有给出瓦尔格林内存错误,泄漏信息。如果程序不需要用户交互(即输入) ,我也会这样做。如果程序需要用户输入,即使那个东西本身也不会工作。
我怎么能这么做?
在默认情况下,Val哪写它的输出到 stderr:
valgrind a.out > log.txt 2>&1
或者,您可以告诉瓦尔格林在其他地方编写代码; 请参阅 http://valgrind.org/docs/manual/manual-core.html#manual-core.comment(但我从未尝试过这样做)。
valgrind --log-file="filename"
还可以设置选项—— log-fd,如果只想用 less 读取日志。 例如:
valgrind --log-fd=1 ls | less
除了其他的答案(特别是通过 Lekakis) ,一些字符串替换也可以在选项 --log-file=中使用,如 瓦尔冈的用户手册中所阐述的。
--log-file=
在编写本报告时,有四个替代品:
valgrind --log-file="myFile-%p.dat" <application-name>
%n
valgrind --log-file="myFile-%p-%n.dat" <application-name>
valgrind --log-file="myFile-%q{HOME}.dat" <application-name>
valgrind --log-file="myFile-%%.dat" <application-name>