所以说我有一个非常简单的C程序:
int main(){
return 1;
}
我把它编译成a.out。如果我跑
valgrind ./a.out
我的返回值为1.但如果我运行
valgrind --tool=lackey ./a.out
我的返回值为0.所以我的问题是,如何在使用带有lackey的valgrind时获取程序的返回值?
答案 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]