linux-BR.org

Notícias de software livre e tecnologias

Por exemplo, um programa regular geralmente começa em _start, pula diretamente e termina em algum tipo de libc_start interna, assim:
Pseudo-código, mas você obtém a essência dele.Uma função raiz é uma função que nunca é chamada de qualquer outro lugar (do código normal, pelo menos), e normalmente desenrolando para uma função raiz.Basicamente, como o exit () é noreturn, e adicionamos um inacessível para garantir que a libc_start não precisará de um epílogo.É, em essência, uma chamada de função regular, mas em uma caixa de areia.No entanto, como este não é um retorno visível, o compilador não pode destruir objetos, esteja ciente disso.

Fonte: https://fwsgonzo.medium.com/the-stop-instruction-9eb536560e95