Bugs en Assembly Go : conflits avec le pointeur de frame dans deux cas

2025-01-04

Cet article analyse deux plantages Go résultant d’un code assembleur défectueux qui a écrasé le pointeur de frame. Un bug a écrasé le registre du pointeur de frame (BP sur AMD64) dans la bibliothèque go-metro, l’autre a enregistré incorrectement le pointeur de frame sur la pile dans l’assembleur ARM64 d’Apache Arrow. L’auteur recommande d’utiliser des générateurs d’assembleur comme Avo pour éviter la manipulation manuelle des registres et de la pile. L’article approfondit les ABI et les conventions d’appel, offrant des informations sur la prévention de problèmes similaires, soulignant l’importance de comprendre et de suivre les directives d’assembleur de Go.

Développement Assembleur Pointeur de Frame