Definição – o que significa falha de segmentação (Segfault)?
Uma falha de segmentação (segfault) é um erro retornado pelo hardware com proteção de memória que informa ao sistema operacional que ocorreu uma violação de acesso à memória. O sistema operacional geralmente reage informando o processo ofensivo sobre o erro por meio de um sinal e, em seguida, o sistema operacional executa algum tipo de ação corretiva. Isso acontece porque um processo ou programa tenta acessar a memória que não está atribuída a ele.
Uma falha de segmentação também é conhecida como violação de acesso.
Definirtec explica falha de segmentação (Segfault)
Uma falha de segmentação é freqüentemente causada por erros na programação de um processo ou aplicativo no qual o programa é levado a acessar a memória que não foi alocada para ele, mas para outros programas ou para o próprio sistema. Um processo não pode tocar na memória não reservada para ele, pois deve sempre solicitar memória antes de usá-lo. Portanto, quando ele toca acidentalmente a memória que não está atribuída a ele, ocorre uma violação de acesso.
Segfaults também podem ser causados por uma função recursiva, que pode usar todo o espaço da pilha a ela atribuída e invadir rapidamente a memória não atribuída a ela. Em alguns sistemas, isso é considerado um estouro de pilha, mas para outros é simplesmente um tipo de violação de acesso.
Uma falha de segmentação pode ser tratada por um processo por meio de um manipulador de sinal personalizado, mas muitas vezes é o manipulador de sinal padrão do sistema operacional que é usado, o que geralmente resulta no processo ofensivo sendo encerrado de forma anormal, chamado de travamento, ou o sistema operacional forçando um dump de memória .