Din*_*esh 137 redirect valgrind
在使用Valgrind工具时,我需要记录valgrind工具生成的详细信息.我怎么能做到这一点?我尝试过类似的东西,
valgrind a.out | test
Run Code Online (Sandbox Code Playgroud)
和
valgrind a.out > test
Run Code Online (Sandbox Code Playgroud)
它只给出了程序的输出而不是valgrind内存错误,泄漏信息.如果程序不需要用户交互(即提供输入),即使我是这样的.如果程序需要用户输入,即使该东西本身也不起作用.
我怎样才能做到这一点?
Vas*_*kis 403
valgrind --log-file="filename"
Run Code Online (Sandbox Code Playgroud)
Oli*_*rth 76
默认情况下,Valgrind将其输出写入stderr.所以你需要做类似的事情:
valgrind a.out > log.txt 2>&1
Run Code Online (Sandbox Code Playgroud)
或者,你可以告诉Valgrind在其他地方写作; 请参阅http://valgrind.org/docs/manual/manual-core.html#manual-core.comment(但我从未尝试过这个).
如果您只想用较少的日志读取日志,也可以设置选项--log-fd.例如 :
valgrind --log-fd=1 ls | less
Run Code Online (Sandbox Code Playgroud)
除了其他答案(特别是Lekakis的答案)之外,还可以在选项中使用一些字符串替换,如Valgrind 用户手册--log-file=中所述。
在撰写本文时,有四种替代品可供选择:
%p:打印当前进程ID
valgrind --log-file="myFile-%p.dat" <application-name>%n:打印当前进程唯一的文件序列号
valgrind --log-file="myFile-%p-%n.dat" <application-name>%q{ENV}:打印环境变量的内容ENV
valgrind --log-file="myFile-%q{HOME}.dat" <application-name>%%: 印刷%
valgrind --log-file="myFile-%%.dat" <application-name>| 归档时间: |
|
| 查看次数: |
85939 次 |
| 最近记录: |