GDB如何记录退出代码?
我正在尝试调试CI中的PHP分段错误。我通过运行phpunit获得了GDB stacktrace,如下所示: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语句中使用它,以确定构建是否成功 问题是,通过这种方式,我不知
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