Como erros do programa são monitoradas depende do programa de computador eo programador , mas a maioria das implementações de linguagem incluem a produção de arquivos de despejo . Esses arquivos contêm registros do que o estado do programa estava no momento da falha, e oferecem evidências de que deu errado internamente. Dependendo do tipo de erro , e se ela ocorreu na execução de métodos ou em um vazamento de memória fora do heap , programadores usam um arquivo de despejo fio ou um arquivo de despejo de pilha para extrair as informações mais úteis . Despejos Principais e arquivos de despejo de
Um arquivo de despejo representa o que seu nome implica. Quando um programa de computador deixa de funcionar ou não se comporta de forma inesperada , o sistema pode " despejar " um arquivo de despejo de núcleo. Este arquivo contém todas as informações sobre o estado do programa , no momento do colapso. Uma espécie de olhar " post-mortem " no programa , este artefato permite que os programadores para examinar os erros ocorridos durante o programa e re- figura do código. Arquivos de despejo são , em essência, um registro da vida de um programa até a sua morte.
Rastreamento de pilha ou Dump Tópico
Um tipo específico de arquivo de despejo é o arquivo de rastreamento de pilha . A " pilha " do programa é uma estrutura de dados que representa atualmente em execução e os métodos declarados , variáveis locais . Na programação multi-threaded, onde múltiplas threads de execução são executados simultaneamente , cada segmento tem uma pilha representando métodos de execução individuais. O despejo de rosca é um arquivo que representa o estado de uma pilha do segmento durante a execução.
Heap e Heap Dumps
A pilha de um programa representa a longa prazo de armazenamento desse programa, especialmente objetos usando memória alocada pelo programa durante a execução. Ao contrário da pilha, o conteúdo da pilha não apagar automaticamente após o programa terminar de usá-los , a menos que a linguagem de programação implementa medidas de coleta de lixo. Um despejo de pilha , como um rastreamento de pilha ou despejo segmento, representa o estado da pilha em um determinado ponto da execução . Este arquivo de despejo em particular catálogos todos os objetos alocados de memória no heap .
Heaps , pilhas e Execução
Ambos os lixões fios e despejos de pilha jogar um papel importante na monitorização da execução de um programa . O despejo segmento exibe o estado da pilha. Isto pode arquivo de despejo ocorre quando um thread de execução tenta acessar a memória disponível, ou quando a pilha fica sem memória . Interpretando o despejo fio permite que o programador para ver o que os métodos estão em execução e que chamadas de método e declarações de variáveis existem no momento da falha do programa . O despejo de pilha lista objetos no heap. Isso dá aos programadores um registro da quantidade de memória é alocada e que objetos não estão sendo excluídas para liberar memória. Se ocorrer um vazamento de memória , este arquivo mostra o que os objetos existem na pilha quando finalmente ficar sem memória .