Onde o ubuntu 14.04 dropa arquivos principais?

20

Eu habilitei um tamanho de arquivo de núcleo ilimitado usando ulimit:

ulimit -a
core file size          (blocks, -c) unlimited
...

Acredito que eu tenha acionado um dump principal, mas não consigo localizar o arquivo principal em minha casa, var / ... etc ...

Você sabe onde o Ubuntu configura o local do dump principal?

jcalfee314
fonte
@djf o OP não especificou qual programa estava causando os core dumps. Pode não ser o código do programador. Pode ser Unidade para tudo que sabemos.
Rich Homolka
1
Como isso é uma pergunta do SuperUser? Trata-se de executar um depurador que somente os programadores usam. Isso deve ser migrado de volta para o SO.
Homer6

Respostas:

7

Eu acho que isso é mais uma coisa do kernel do Linux do que uma coisa específica do Ubuntu. Confira

cat /proc/sys/kernel/core_pattern

Confira a página do manual do arquivo principal

Rich Homolka
fonte
13
Isso não diz onde ele coloca o arquivo. A questão chamada Ubuntu 14.04. Não está claro, seguindo o comando em /proc/sys/kernel/core_pattern onde se encontraria o arquivo.
jcalfee314
1
Para mim, esse pseudofile do kernel core_pattern faz referência a um programa chamado 'apport' ... que não possui uma página de manual nem uma saída muito útil. Então continuo procurando meus núcleos abandonados. :(
gojomo
1
apport é o manipulador de núcleo de desktop linux padrão que reporta normalmente à sua distro.
kkron
Como abrir esta pasta? cd /usr/share/apport/apport não funciona.
mrgloom
28

Por padrão, o kernel do Ubuntu é configurado para usar o apport para registrar os coredumps. Você pode substituir isso sobrescrevendo /proc/sys/kernel/core_pattern, verifique a seção "Nomeando de arquivos de despejo de núcleo" em man core para detalhes. Por exemplo:

echo '/tmp/core.%e.%p.%t' | sudo tee /proc/sys/kernel/core_pattern

Apport escreve core dumps para /var/crash/_path_to_program.userid.crash, Mas só vai fazê-lo para aplicativos instalados a partir dos principais repositórios apt ubuntu.

Mais informações sobre o apport: https://wiki.ubuntu.com/Apport

maccam94
fonte
Para gravar também os despejos principais para programas não-pacote, crie um arquivo chamado ~ / .config / apport / settings com o seguinte conteúdo: [a Principal] descompactado = true
greuze
Modificando o / proc / sys / kernel / core_pattern não funciona para mim no Ubuntu 18.04
greuze
1

No Ubuntu 16.04.3 LTS, meu core dump estava localizado em:

/var/lib/systemd/coredump/core.application-name.0.24d47e89526c4c7e90953998d2c33d1e.19672.1516049424000000000000

Então, para executá-lo em gdb, você pode correr:

apt install gdb gdb /path/to/your/binary/application-name /var/lib/systemd/coredump/core.application-name.0.24d47e89526c4c7e90953998d2c33d1e.19672.1516049424000000000000

Homer6
fonte