在使用Valgrind工具时,我需要记录由valgrind工具生成的详细信息。我怎么能做到这一点?我想是这样,如何将Valgrind的输出重定向到文件?
valgrind a.out | test
和
valgrind a.out > test
这给了刚刚程序的输出,而不是Valgrind的内存错误,泄露信息。即使我喜欢这个,如果该程序不需要用户交互(即提供输入)。如果该程序需要用户输入,即使该东西本身也无法工作。
我该怎么做?
在使用Valgrind工具时,我需要记录由valgrind工具生成的详细信息。我怎么能做到这一点?我想是这样,如何将Valgrind的输出重定向到文件?
valgrind a.out | test
和
valgrind a.out > test
这给了刚刚程序的输出,而不是Valgrind的内存错误,泄露信息。即使我喜欢这个,如果该程序不需要用户交互(即提供输入)。如果该程序需要用户输入,即使该东西本身也无法工作。
我该怎么做?
默认情况下,Valgrind将其输出写入stderr。因此,您需要执行以下操作:
valgrind a.out > log.txt 2>&1
或者,您可以告诉Valgrind在其他地方写入;见http://valgrind.org/docs/manual/manual-core.html#manual-core.comment(但我从来没有尝试过)。
如果您只是想用较少的读取日志,您还可以设置选项--log-fd。 例如:
valgrind --log-fd=1 ls | less
谢谢,这节省了我的硬盘! –
您是否试过重定向stout和stderr? 'valgrind a.out&>文件' – sidyll