Postei essa pergunta para o StackOverflow há pouco tempo, mas acabei de encontrar essa comunidade, e senti que esse é, pelo menos, um site igualmente apropriado para essa pergunta:
Fui levado a entender que, se o abrt-ccpp.service estiver instalado em um PC Linux, ele substituirá / overwrites (eu li os dois, não tenho certeza qual é a verdade) o arquivo /proc/sys/kernel/core_pattern
, que de outra forma especifica o padrão de localização e nome de arquivo dos arquivos principais.
Pergunta :
Quando executo systemctl
, por que o abrt-ccpp.service reporta exited
na coluna SUB
? Eu não entendo a combinação de active
e exited
: é o serviço "vivo" / ativo / em execução ou não?
> systemctl
UNIT LOAD ACTIVE SUB
abrt-ccpp.service loaded active exited ...
Pergunta :
Onde os arquivos principais são gerados? Eu escrevi este programa para gerar um SIGSEGV
:
#include <iostream>
int main(int argc, char* argv[], char* envz[])
{
int* pInt = NULL;
std::cout << *pInt << std::endl;
return 0;
}
Compilação e execução da seguinte forma:
> g++ main.cpp
> ./a.out
Segmentation fault (core dumped)
Mas não consigo localizar onde o arquivo principal é gerado.
O que tentei :
- Olhou no mesmo diretório que meu
main.cpp
. O arquivo principal não está lá.
- Examinado em
/var/tmp/abrt/
devido ao seguinte comentário em /etc/abrt/abrt.conf
. O arquivo principal não está lá.
...
# Specify where you want to store coredumps and all files which are needed for
# reporting. (default:/var/tmp/abrt)
#
# Changing dump location could cause problems with SELinux. See man_abrt_selinux(8).
#
#DumpLocation = /var/tmp/abrt
...
- Verificou em
/var/spool/abrt/
devido a um comentário em este link . O arquivo principal não está lá.
- Editado
/etc/abrt/abrt.conf
e descomentado e definido DumpLocation = ~/foo
, que é um diretório existente. Seguido isso reiniciando abrt-hook-ccpp ( sudo service abrt-ccpp restart
) e reexecutando a.out
. O arquivo principal não foi gerado em ~/foo/
- Verificado que
ulimit -c
relatórios unlimited
.
Estou sem ideias sobre o que mais tentar e onde mais procurar.
Caso seja útil, este é o conteúdo do meu /proc/sys/kernel/core_pattern
:
> cat /proc/sys/kernel/core_pattern
|/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e
Alguém pode ajudar a explicar como funciona o serviço abrt-hook-ccpp e onde ele gera arquivos principais? Obrigado.