أخطاء في تجميع Go: تعارضات مؤشر الإطار في حالتين
2025-01-04
تتناول هذه المقالة تحليلين لحالتين من تعطل Go ناتجتين عن كود تجميع خاطئ أدى إلى إتلاف مؤشر الإطار. أدى خطأ إلى الكتابة فوق سجل مؤشر الإطار (BP على AMD64) داخل مكتبة go-metro، بينما أدى خطأ آخر إلى حفظ مؤشر الإطار بشكل غير صحيح على المكدس في تجميع ARM64 لمكتبة Apache Arrow. يوصي الكاتب باستخدام أدوات توليد التجميع مثل Avo لتجنب التلاعب اليدوي بالسجلات والمكدس. تتناول المقالة بالتفصيل واجهات برمجة التطبيقات الثنائية (ABIs) واتفاقيات الاستدعاء، مع تقديم رؤى حول كيفية منع مشاكل مماثلة، مع تسليط الضوء على أهمية فهم واتباع إرشادات تجميع Go.