linux - 如何将管道作为 valgrind 的输入?

标签 linux valgrind

我想使用几乎自动化的工具检查我的程序内存(我还不擅长 gdb),所以我最终使用了 valgrind。

但是,我想放一个管道作为valgrind的输入;即我想添加以下内容:

 >cat file.h | ./prog 

我试着做一个
 >valgrind `cat file.h | ./prog`

没有成功。

我还尝试制作一个脚本文件,在其中放置整个命令,然后将其传递给 valgrind,但没有成功。

最佳答案

如评论中所述,您应该能够使用以下任一方法:

cat file.h | valgrind ./prog
valgrind ./prog < file.h
第一个使用您特别要求的管道,并且可以很容易地成为任何程序的输出,例如
ls -al | valgrind ./prog
ps -axuwww | valgrind ./prog
如果您只是想获取文件的内容,则后者更有效。
您尝试的反引号方法不适用于您在这里所做的事情。它适用于您希望一个命令的输出作为另一个命令的参数的情况(例如 ls -al cat namelist 对在名为 nameless 的文件中命名的所有文件进行详细列表)。

关于linux - 如何将管道作为 valgrind 的输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29488940/

相关文章:

c++ - helgrind (valgrind) 可以与 c++11 future 一起使用吗

compilation - 使用 uCLibc 编译 valgrind

java:当多个进程运行时killall -3如何工作?

linux - linux centos中如何保存文件

linux - 本地连接的 Ldap 配置文件。

c - 跟踪未初始化的静态变量

c - 尝试从 valgrind 读取泄漏摘要 - 程序在我的电脑上导致段错误,而不是在另一台电脑上

linux - 为 valgrind 和 gdb 记录禁用 glibc (LD_HWCAP_MASK,/etc/ld.so.nohwcap) 中的 AVX 优化函数

linux - 使用单个命令打开 .tar.gz 文件

c++ - 使用单例时内存泄漏