ADDR2LINE(1)

الاسم
addr2line - تحويل العناوين أو رمز+إزاحة إلى أسماء ملفات وأرقام أسطر

موجز
addr2line [-a|--addresses]
          [-b bfdname|--target=bfdname]
          [-C|--demangle[=style]]
          [-r|--no-recurse-limit]
          [-R|--recurse-limit]
          [-e filename|--exe=filename]
          [-f|--functions] [-s|--basename]
          [-i|--inlines]
          [-p|--pretty-print]
          [-j|--section=name]
          [-H|--help] [-V|--version]
          [addr addr ...]

الوصف
addr2line يترجم العناوين أو رمز+إزاحة إلى أسماء ملفات وأرقام أسطر. عند إعطاء عنوان أو رمز+إزاحة في ملف تنفيذي أو إزاحة في مقطع من كائن قابل للنقل، يستخدم معلومات التصحيح لمعرفة اسم الملف ورقم السطر المرتبطين به.

يُحدد الملف التنفيذي أو الكائن القابل للنقل المراد استخدامه باستخدام الخيار -e. الملف المبدئي هو a.out. يُحدد المقطع في الكائن القابل للنقل المراد استخدامه باستخدام الخيار -j.

addr2line له وضعان للتشغيل.

في الأول، تُحدد العناوين السداسية عشرية أو رمز+إزاحة في سطر الأوامر، ويعرض addr2line اسم الملف ورقم السطر لكل عنوان.

في الثاني، يقرأ addr2line العناوين السداسية عشرية أو رمز+إزاحة من المدخل القياسي، ويطبع اسم الملف ورقم السطر لكل عنوان على المخرج القياسي. في هذا الوضع، يمكن استخدام addr2line في أنبوب لتحويل العناوين المختارة آليًا.

تنسيق المخرج هو FILENAME:LINENO. مبدئيًا، يُنشئ كل عنوان إدخال سطرًا واحدًا من المخرج.

يمكن لخيارين إنشاء أسطر إضافية قبل كل سطر FILENAME:LINENO (بهذا الترتيب).

إذا استُخدم الخيار -a، يُعرض سطر يحتوي على عنوان الإدخال.

إذا استُخدم الخيار -f، يُعرض سطر يحتوي على FUNCTIONNAME. هذا هو اسم الدالة التي تحتوي على العنوان.

يمكن لخيار واحد إنشاء أسطر إضافية بعد سطر FILENAME:LINENO.

إذا استُخدم الخيار -i وكان الكود في العنوان المحدد موجودًا هناك بسبب التضمين الداخلي من قبل المترجم، تُعرض أسطر إضافية بعد ذلك. يُعرض سطر أو سطران إضافيان (إذا استُخدم الخيار -f) لكل دالة مضمنة داخليًا.

بدلاً من ذلك، إذا استُخدم الخيار -p، يُنشئ كل عنوان إدخال سطر مخرج واحد طويل يحتوي على العنوان واسم الدالة واسم الملف ورقم السطر. إذا استُخدم الخيار -i أيضًا، فستُعرض أي دوال مضمنة داخليًا بنفس الطريقة، ولكن في أسطر منفصلة، وتُسبق بالنص (inlined by).

إذا تعذر تحديد اسم الملف أو اسم الدالة، يطبع addr2line علامتي استفهام في مكانهما. إذا تعذر تحديد رقم السطر، يطبع addr2line 0.

عند استخدام رمز+إزاحة، تكون +إزاحة اختيارية، إلا عندما يكون الرمز غامضًا مع رقم سداسي عشري. يمكن أن تكون الرموز المحللة مشوهة أو غير مشوهة، باستثناء الرموز غير المشوهة التي تحتوي على + غير مسموح بها.

الخيارات
الصيغتان الطويلة والقصيرة للخيارات، المعروضة هنا كبدائل، متكافئتان.

-a
--addresses
    يعرض العنوان قبل اسم الدالة ومعلومات الملف ورقم السطر. يُطبع العنوان ببادئة 0x لتحديده بسهولة.

-b اسم_bfd
--target=اسم_bfd
    يُحدد أن تنسيق كود الكائن لملفات الكائن هو bfdname.

-C
--demangle[=style]
    فك ترميز (demangle) أسماء الرموز منخفضة المستوى إلى أسماء بمستوى المستخدم. بالإضافة إلى إزالة أي شرطة سفلية بادئة يضعها النظام، فإن هذا يجعل أسماء دوال C++‎ مقروءة. المجمّعات المختلفة لها أنماط ترميز مختلفة. يمكن استخدام وسيط نمط فك الترميز الاختياري لاختيار نمط فك ترميز مناسب لمجمّعك.

-e اسم_الملف
--exe=اسم_الملف
    يحدد اسم الملف التنفيذي الذي ينبغي ترجمة العناوين له. الملف المبدئي هو a.out.

-f
--functions
    يعرض أسماء الدوال بالإضافة إلى معلومات اسم الملف ورقم السطر.

-s
--basenames
    يعرض فقط القاعدة من كل اسم ملف.

-i
--inlines
    إذا كان العنوان ينتمي إلى دالة تم تضمينها، فستُطبع معلومات المصدر لجميع النطاقات المحيطة رجوعًا إلى أول دالة غير مضمنة. على سبيل المثال، إذا قامت "main" بتضمين "callee1" التي تضمّن "callee2"، وكان العنوان من "callee2"، فستُطبع معلومات المصدر لكل من "callee1" و "main").

-j
--section
    يقرأ الإزاحات بالنسبة للقسم المحدد بدلاً من العناوين المطلقة.

-p
--pretty-print
    يجعل المخرجات أكثر ودية للبشر: يُطبع كل موقع في سطر واحد. إذا تم تحديد الخيار -i، فتُسبق أسطر جميع النطاقات المحيطة بـ (مضمن بواسطة).

-r
-R
--recurse-limit
--no-recurse-limit
--recursion-limit
--no-recursion-limit
    يمكن أو يعطل حداً لمقدار التكرار المنفذ أثناء فك تشويه السلاسل النصية. بما أن تنسيقات تشويه الأسماء تسمح بمستوى غير محدود من التكرار، فمن الممكن إنشاء سلاسل سيؤدي فك تشفيرها إلى استنفاد مساحة المكدس المتاحة على الجهاز المضيف، مما يتسبب في خطأ في الذاكرة. يحاول هذا الحد منع حدوث ذلك عن طريق تقييد التكرار بـ 2048 مستوى من التداخل.

    المبدئي هو تفعيل هذا الحد، لكن تعطيله قد يكون ضروريًا من أجل حل (demangle) الأسماء المعقدة حقًا. لاحظ مع ذلك أنه إذا عُطل حد العودية، فإن استنفاد المكدس وارد وأي تقارير عن أخطاء بشأن مثل هذا الحدث ستُرفض.

    الخيار -r هو مرادف للخيار --no-recurse-limit. الخيار -R هو مرادف للخيار --recurse-limit.

    لاحظ أن هذا الخيار فعال فقط إذا تم تمكين الخيار -C أو --demangle.

@الملف
    اقرأ خيارات سطر الأوامر من file. تُدرج الخيارات المقروءة مكان خيار @file الأصلي. إذا كان file غير موجود، أو لا يمكن قراءته، فسيُعامل الخيار حرفيًا ولن يُزال.

    تُفصل الخيارات في file بمسافات فارغة. يمكن تضمين حرف مسافة فارغة في خيار ما عن طريق إحاطة الخيار بالكامل إما بعلامات اقتباس مفردة أو مزدوجة. يمكن تضمين أي حرف (بما في ذلك الشرطة المائلة العكسية) عن طريق سبق الحرف المراد تضمينه بشرطة مائلة عكسية. يمكن لـ file نفسه أن يحتوي على خيارات @file إضافية؛ وتُعالج أي خيارات من هذا القبيل بشكل متكرر (recursively).

انظر أيضًا
مدخلات المعلومات لـ binutils.

حقوق النسخ
حقوق الطبع والنشر (c) لعام 1991-2026 لمؤسسة البرمجيات الحرة، المحدودة.

يُمنح الإذن بنسخ وتوزيع و/أو تعديل هذا المستند بموجب شروط رخصة جنو للوثائق الحرة (GNU Free Documentation License)، الإصدار 1.3 أو أي إصدار لاحق تنشره مؤسسة البرمجيات الحرة؛ مع عدم وجود أقسام ثابتة، وبدون نصوص غلاف أمامي، وبدون نصوص غلاف خلفي. نُسخة من الرخصة مضمنة في القسم المعنون "GNU Free Documentation License".

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.