سؤال

أنا باستخدام GDB على ليب مشترك AIX يعمل على AIX 5.3؟ عندما أحاول تشغيل GDB لهذا الملف، أحصل على رسالة خطأ تقول "بنية الملف غير معروفة" لا أعرف كيفية الحصول على هذا ثابت.

هل يعرف أي شخص لماذا أحصل على هذه الرسالة "" بنية الملف غير معروفة "؟

يعمل GDB بشكل جيد على الملفات التنفيذية الأخرى التي تم تجميعها بواسطة XLC.

هل هناك بعض الخيار الذي قد استخدمته أثناء تجميع، وهو غير متوافق مع خيار معالج GDB.EMOME.

قمت بتجميع LIB مشترك W XLC V9.0 ل AIX.

شكرا.

هل كانت مفيدة؟

المحلول

void set_gdbarch_from_file (BFD * ABFD) {بنية GDBARK_INFO معلومات؛ بنية gdbarch * gdbarch؛ gdbarch_info_init (& معلومات)؛ info.abfd = ABFD؛ info.target_desc = target_current_description ()؛ gdbarch = gdbarch_find_by_info (info)؛ إذا كان (GDBARCH == NULL) خطأ (_ ("بنية الملف غير معروف.")؛ defected_current_gdbarch_select_hack (gdbarch)؛ }

هذا هو رمز GDB الفعلي المعني (GDB / Arch-Utils.c: 530-544).

يبدو أن المعلومات التي تم تمريرها إلى مؤشر GDBarch غير صالح. يحدث هذا بسبب GDB_FIND_BY_INFO إرجاع مؤشر فارغ وهذا ناتج عن find_arch_by_info (GDB / GDBARCH.C: 3656) إرجاع مؤشر فارغ.

إنها تعني بشكل أساسي ما تقوله: تعذر على GDB تحديد بنية الملف. هذا يبدو أنه مشترك مشكلة XLC، حتى في إصدارات GDB الأخيرة.

XLC و GDB هي، حتى الآن أتذكر وفهمها، ليست جيدة جدا عندما يتعلق الأمر بالتوافق مع شروط التام (دعم AIX ضئيل)، قد تحاول استخدام مترجم جنو ج قد تنظر إلى مصادر GDB جدا معلومات محددة (لا أستطيع أن أعطيك حقا).

هنا هو رابط لتحسين GCC-AIX.

نصائح أخرى

أنت لا تعمل GDB على مكتبة مشتركة، يمكنك تشغيلها على تنفيذ.

إذا تم تحميل الملف التنفيذي مكتبة مشتركة، فسيعرف GDB عن ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top