Falha de segmentação (segfault)

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 .