Valgrind没有使用lackey返回程序的返回值

时间:2015-09-17 19:46:03

标签: valgrind

所以说我有一个非常简单的C程序:

int main(){
    return 1;
}

我把它编译成a.out。如果我跑

valgrind ./a.out

我的返回值为1.但如果我运行

valgrind --tool=lackey ./a.out

我的返回值为0.所以我的问题是,如何在使用带有lackey的valgrind时获取程序的返回值?

1 个答案:

答案 0 :(得分:0)

lackey输出一个(令人困惑/无用的)'valgrind退出代码' 据我所知,在valgrind源码中总是等于0。 在所有valgrind工具中,只有lackey使用这个无用的代码。

然而,“真正的”退出状态(即由shell看到)是由 默认程序的退出状态:

$ valgrind --tool=lackey a.out
...
==7033== Exit code:       0
$ echo $?
1

对于报告错误的工具(例如memcheck),您可以更改 如果工具检测到错误,程序的退出代码,使用 选项:

--error-exitcode=<number> exit code to return if errors found [0=disable]