Aprendendo sobre sinais, descobri que chamar o <stdlib.h>
function abort(void);
em um programa C, que equivale a elevar um sinal SIGABRT
, não cria um arquivo core
no meu Ubuntu 13.04, apesar de tendo definido ulimit -c
para unlimited
e recebendo uma mensagem core dumped
.
Após a página signal(7)
, eu matei uma instância em execução de yes
com todos os sinais marcados com o sinalizador Core
, cuja ação padrão é declarada como sendo a finalização do processo e descartando o núcleo.
De todos os sinais mencionados ( SIGILL, SIGABRT, SIGFPE, SIGSEGV, SIGBUS, SIGSYS, SIGTRAP, SIGXCPU, SIGXFSZ, SIGIOT, SIGQUIT
), no entanto, apenas SIGQUIT
causou a criação de um arquivo core
.
Este comportamento documentado e / ou configurável, ou é uma peculiaridade?