O status de saída de um programa segfaulting é definido como 139
pelo Bash (portanto, isso se aplica ao menos aos programas que não definiram um manipulador para o SIGSEV receber um SIGSEV durante a execução no Bash: ele deve caber no caso de uso):
$ cat foo.c
#include <stdio.h>
int main() {
char *ptr = NULL;
*ptr = 'a';
return 0;
}
$ gcc foo.c -o foo
$ ./foo
Segmentation fault (core dumped)
$ echo $?
139
Você pode definir PROMPT_COMMAND
como algo assim em ~/.bashrc
:
PROMPT_COMMAND='[ $? -eq 139 ] && printf "SIGSEV received\n"'
Alterando printf "SIGSEV received\n"
para o comando que você deseja executar.
$ PROMPT_COMMAND='[ $? -eq 139 ] && printf "SIGSEV received\n"'
$ printf '\n'
$ ./foo
Segmentation fault (core dumped)
SIGSEV received