core dump - linux

3

Estou tentando entender a geração de despejo principal. O dump principal é gerado separadamente para uma falha no processo de aplicativo de espaço do usuário e o travamento do nível do kernel? É o ulimit -c para os dois tipos?

    
por foo_l 01.03.2013 / 07:32

1 resposta

5

Quando um programa userland trava, ele pode deixar um arquivo core para trás, contendo uma cópia do conteúdo da memória quando ela caiu (o nome core vem da pré-história da computação, quando a memória foi core ). Isso é controlado pelo comando ulimit(1) , normalmente é desativado porque os arquivos principais são grandes e tendem a confundir novatos. Um arquivo principal pode ser analisado por, e. um depurador, junto com o executável e a tabela de símbolos, para descobrir o que aconteceu.

Quando o kernel trava, ele normalmente ativa um pânico do kernel . Se o kernel encontrou alguma inconsistência crítica, não é sensato contar com isso para escrever alguma coisa. Portanto, nenhum núcleo é gerado e o sistema fica inativo. O conteúdo dos registradores e o código em torno do endereço em que o problema ocorreu é gravado no console. É uma boa ideia guardar isto (por exemplo, tirar uma foto) para possível análise posterior.

Uma situação semelhante é o kernel Oops , quando o kernel detecta uma inconsistência que não é considerada fatal. Nesse caso (como em um pânico do kernel), o conteúdo dos registros e do código em torno do endereço onde o problema ocorreu é gravado no console e também registrado.

    
por 01.03.2013 / 14:26