Valgrind输出位置不正确
valgrind improper output location
我有一个程序,它应该在另一个程序上运行valgrind并将valgrind输出定向到另一个文件。我使用的代码是:
char* args[] = {"sudo", //(This is inside a fork)
"valgrind",
"--leak-check=full",
"--show-leak-kinds=definite",
"--errors-for-leak-kinds=definite",
"<path to executable>", //placeholders
"&><path to output file>", //placeholders
" "};
execvp("sudo",args);
我得到的问题是,无论我做什么,它实际上都不会将输出定向到终端以外的任何地方。
我试过"&>"answers">"没有变化。我试过在终端中运行它,重定向输出到文件,我也试过在eclipse中运行它,带终端参数,等等。我不知道我还能尝试什么。
有人知道为什么"&>"没有重定向吗?我已经确认在终端中输入args数组(不是作为程序的一部分)确实有效。好像是c++程序的问题(可能是fork?)
我建议您使用--log-file=<filename>
选项。
--log-file=<filename>
指定Valgrind应该将所有消息发送到指定的文件。如果文件名为空,则会导致一个中止。可以使用三种特殊的格式说明符
%p被替换为当前进程ID。这是非常有用的调用多个进程的程序。警告:如果你使用——trace-children=yes,如果你的程序调用了多个进程,或者你的程序fork之后没有调用exec,那么你不使用此说明符(或下面的%q说明符),Valgrind的输出所有这些进程都将放在一个文件中,可能是混乱的,并且可能是不完整的。
%q{FOO}被替换为环境变量FOO的内容。如果{FOO}部分是畸形的,它将导致中止。这个说明符是很少需要,但在某些情况下非常有用。当运行MPI程序)。其思想是指定一个变量是否会在作业的每个过程中设置不同BPROC_RANK或任何适用于您的MPI设置。如果命名为如果未设置环境变量,则会导致中止。注意,在一些在shell中,{和}字符可能需要用反斜杠。
%%被替换为%。
如果%后面跟任何其他字符,将导致中止。
如果文件名指定了一个相对文件名,则放在程序的初始工作目录:这是当前目录当程序在fork之后开始执行时执行。如果它指定了一个绝对文件名(例如。然后以'/'开头它被放在那里。
- 使用2个键的cpp-stl::优先级队列排序不正确
- 正弦级数方程计算不正确
- 我试图制作一个程序,要求用户输入问题和答案,但程序循环不正确
- 密码登录程序将永远循环并显示不正确的结果
- 在C++中返回不正确的楼层函数值
- 形状对象的旋转和缩放不正确C++
- C++ 读取文件读取文件不正确
- 关于类的 Python 文档 - 对C++的引用不正确
- 特征 LLT 模块给出不正确的结果?
- glibcxx STL 在实现 std::valarray::sum() 时是否不正确?
- 如果语句逻辑不正确
- 来自逆 vp 矩阵和相机位置的光线方向不正确
- 不正确的操作数类型 MSVC
- 数组填充了不正确的值
- 我是否不正确地集中了这些字符数组?
- 为什么除非我使用 cout,否则我的值不正确?
- 计算幂级数的数学结果不正确
- 带有骨骼的Assimp + COLLADA模型=不正确的顶点位置
- Valgrind输出位置不正确
- GetWindowPlacement给出了不正确的窗口位置