GDB如何记录退出代码?

GDB如何记录退出代码?,gdb,Gdb,我正在尝试调试CI中的PHP分段错误。我通过运行phpunit获得了GDB stacktrace,如下所示: gdb php -ex "run vendor/bin/phpunit" -ex bt -ex quit 问题是,通过这种方式,我不知道phpunit是成功还是失败(不管它是由于segfault还是由于测试失败而失败)。我需要以某种方式记录vendor/bin/phpunit命令的退出代码,并在以后的if语句中使用它,以确定构建是否成功 问题是,通过这种方式,我不知

我正在尝试调试CI中的PHP分段错误。我通过运行phpunit获得了GDB stacktrace,如下所示:

gdb php -ex "run vendor/bin/phpunit" -ex bt -ex quit
问题是,通过这种方式,我不知道phpunit是成功还是失败(不管它是由于segfault还是由于测试失败而失败)。我需要以某种方式记录
vendor/bin/phpunit
命令的退出代码,并在以后的
if
语句中使用它,以确定构建是否成功

问题是,通过这种方式,我不知道phpunit是成功还是失败(不管它是由于segfault还是由于测试失败而失败)

您可以打印的值。在SIGSEGV信号的情况下,它将等于11。您还可以使用
$\u isvoid
函数了解程序是否退出或发出信号。对于此代码:

#include <signal.h>

int main (int argc, char *argv[])
{
  raise (SIGSEGV);
  return 0;
}
在输出结束时,您可以看到程序以信号结束,
$\u isvoid($\u exitsignal)
返回
0

$1 = 0
$1 = 0