| إدخال | إخراج | الاسم المستعار |
|---|---|---|
| ✔ | ✗ |
الوصف
DWARF بتحليل رموز تصحيح DWARF من ملف ELF (ملف تنفيذي أو مكتبة أو object file).
وهو مشابه لـ dwarfdump، لكنه أسرع بكثير (مئات الميغابايت/الثانية) ويدعم SQL.
وينتج صفًا واحدًا لكل Debug Information Entry (DIE) في القسم .debug_info
ويتضمن إدخالات “null” التي يستخدمها ترميز DWARF لإنهاء قوائم العناصر الفرعية في الشجرة.
يتألف
.debug_info من وحدات، وهي تقابل وحدات الترجمة:- كل وحدة عبارة عن شجرة من DIEs، ويكون DIE من نوع
compile_unitهو جذرها. - لكل DIE tag وقائمة من attributes.
- ولكل attribute name و value (وله أيضًا form يحدد كيفية ترميز القيمة).
- دوال (tag =
subprogram) - أصناف/structs/enums (
class_type/structure_type/enumeration_type) - متغيرات (
variable) - معاملات الدالة (
formal_parameter).
class_type على DIEs من نوع subprogram تمثل methods الخاصة بالصنف.DWARF الأعمدة التالية:
offset- موضع DIE في القسم.debug_infosize- عدد البايتات في DIE المُرمَّز (بما في ذلك attributes)tag- نوع DIE؛ تُحذف البادئة الاصطلاحية “DW_TAG_”unit_name- اسم وحدة الترجمة التي تحتوي على هذا DIEunit_offset- موضع وحدة الترجمة التي تحتوي على هذا DIE في القسم.debug_infoancestor_tags- Array من tags الخاصة بأسلاف DIE الحالي في الشجرة، بالترتيب من الأعمق إلى الأبعدancestor_offsets- offsets الخاصة بالأسلاف، على التوازي معancestor_tags- بعض attributes الشائعة المكررة من مصفوفة attributes للتسهيل:
namelinkage_name- الاسم الكامل المؤهل بعد التشويه؛ ويكون عادةً موجودًا للدوال فقط (ولكن ليس كل الدوال)decl_file- اسم ملف source code الذي أُعلن فيه هذا entitydecl_line- رقم السطر في source code الذي أُعلن فيه هذا entity
- Arrays متوازية تصف attributes:
attr_name- اسم attribute؛ تُحذف البادئة الاصطلاحية “DW_AT_”attr_form- كيفية ترميز attribute وتفسيره؛ تُحذف البادئة الاصطلاحية DW_FORM_attr_int- القيمة الصحيحة للـ attribute؛ وتكون 0 إذا لم تكن للـ attribute قيمة رقميةattr_str- القيمة النصية للـ attribute؛ وتكون فارغة إذا لم تكن للـ attribute قيمة نصية
مثال على الاستخدام
DWARF للعثور على وحدات الترجمة التي تضم أكبر عدد من تعريفات الدوال (بما في ذلك تجسيدات Template والدوال من ملفات الترويسة المضمّنة):
Query
Response