Bugs em Assembly Go: Conflitos com Ponteiro de Frame em Dois Casos

2025-01-04

Este artigo analisa duas falhas no Go resultantes de código assembly com defeito que corrompeu o ponteiro de frame. Um bug sobrescreveu o registrador do ponteiro de frame (BP em AMD64) na biblioteca go-metro, o outro salvou incorretamente o ponteiro de frame na pilha no assembly ARM64 do Apache Arrow. O autor recomenda o uso de geradores de assembly como o Avo para evitar a manipulação manual de registradores e pilha. O artigo aprofunda-se em ABIs e convenções de chamada, oferecendo insights sobre como prevenir problemas semelhantes, destacando a importância de entender e seguir as diretrizes de assembly do Go.

Leia mais
Desenvolvimento Ponteiro de Frame