كيفية الحصول على GNU حول تنبعث منه تصحيح المعلومات أو GDB إلى خطوات خطوة واحدة في التجمع (AVR)؟

StackOverflow https://stackoverflow.com/questions/1275944

سؤال

لا يمكنني معرفة كيفية الحصول على غاز لتصحيح معلومات التصحيح لتصحيح الأرقام من أجل GDB في التجميع. لاحظ أن أنا أستخدم برنامج AVR-GCC Cross Compiler، لكن أشك في أنه مناسب.

أنا أستخدم خيارات سطر الأوامر التالية للتجميع: AVR-GCC -GDB -OS -OS -MMCU = ATMEGA644 -Pract - أقسام -fsigned-char -winvalid-pch -wall -wno-blow-long -x المجمع - مع -cpp -wa، -ggdb -c -o z813.o z813.s

عندما أستخدم مجموعة متطابقة تقريبا من الحجج لتجميع كود C، أستطيع أن أرى رقم السطر وازداد ملف المصدر باستخدام "Objdump -l -d".

لكن كائنات التجميع ليس لها أي شيء. بمعنى آخر


000000d4 <run_timetable>:
      d4:       0e 94 57 00     call    0xae    ; 0xae <run_timetable_row>
      d8:       0e 94 b4 00     call    0x168   ; 0x168 <delay>

vs

00000f9c :
main():
/home/braddock/work/tviki/tviki/scratch/z813-vid.c:68
     f9c:       0e 94 ae 07     call    0xf5c   ; 0xf5c <init>
/home/braddock/work/tviki/tviki/scratch/z813-vid.c:70
     fa0:       0e 94 6a 00     call    0xd4    ; 0xd4 <run_timetable>

عندما تكون في AVR-GDB (عبر اتصال GDB عن بعد Simulavr)، لا يمكنني الحصول على مصحح الأخطاء إلى خطوة واحدة من خلال رمز التجميع الخاص بي، على الرغم من أنه يتعرف على أسماء الرموز والمعلومات. أفترض أن هذا مرتبط.

وضعت في جهد جيد في محاولة للعثور على هذا في Info / Man / Google وتلمح إلى الأعلام المحتملة. أي مساعدة في تقديرها!

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

المحلول

عند "ترجمة" شفرة مصدر المجمع "، فإن استدعاء برنامج التحويل البرمجي C هو مبالفة إلى حد ما. سيتدرك المحول البرمجي أن الإدخال هو ملف ج، وتجاهل أي خيارات تقوم به والتي تؤثر على تجميع C، مثل -غ و -وس. قم بتمرير "-V" إلى سطر التحويل البرمجي لرؤية الخيارات التي يتم تمريرها بالفعل إلى المجمع.

عندما اجتمع مع

avr-as --gstabs -mmcu=atmega644 a.s -o a.o

ثم أحصل على معلومات خط المصدر لطيفة في ملف الكائن. لا يدعم الإصدار الخاص بي من AVR-AS (2.18.0) خيار -ggdb على الإطلاق، فإنه يحتوي فقط على -g، - gstabs، - gstabs +، - gdwarf-2. مع الطعنات، objdump قادر على عرض الخطوط. مع DWARF-2، ليس - أنا لست متأكدا مما إذا كان هذا خطأ في Objdump أو في كما.

إذا أصرت تماما على استدعاء المجمع باسم "دول مجلس التعاون الخليجي"، يجب أن تمر -WA، - Gstabs.

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