جي دي بي(1) أدوات تطوير جنو جي دي بي(1)

الاسم

gdb - منقّح جنو

موجز

gdb [الخيارات] [البرنامج|البرنامج معرف_العملية|البرنامج ملف_اللب]

الوصف

الغرض من منقّح مثل جي دي بي هو السماح لك بمعرفة ما يدور "داخل" برنامج آخر أثناء تنفيذه -- أو ما كان يفعله برنامج آخر في اللحظة التي انهار فيها.

يمكن لـ جي دي بي القيام بأربعة أنواع رئيسة من الأشياء (بالإضافة إلى أشياء أخرى لدعمها) لمساعدتك في اصطياد العلل أثناء حدوثها:

  • بدء برنامجك، مع تحديد أي شيء قد يؤثر على سلوكه.
  • جعل برنامجك يتوقف عند شروط محددة.
  • فحص ما حدث عندما يتوقف برنامجك.
  • تغيير أشياء في برنامجك، لتتمكن من تجربة تصحيح آثار علة ما والمضي قدمًا للتعرف على أخرى.

يمكنك استخدام جي دي بي لتنقيح البرامج المكتوبة بلغات سي، وC++، وفورتران، وموديولا-2.

يُستدعى جي دي بي عبر أمر الصدفة "gdb". وبمجرد بدئه، يقرأ الأوامر من الطرفية حتى تطلب منه الخروج باستخدام أمر جي دي بي "quit" أو "exit". يمكنك الحصول على مساعدة مباشرة من جي دي بي نفسه باستخدام الأمر "help".

يمكنك تشغيل "gdb" بدون معطيات أو خيارات؛ لكن الطريقة الأكثر شيوعًا لبدء جي دي بي هي بمعطى واحد أو اثنين، مع تحديد برنامج قابل للتنفيذ كمعطى:

gdb program

يمكنك أيضًا البدء بتحديد كل من البرنامج القابل للتنفيذ وملف اللب:

gdb program core

بدلًا من ذلك، يمكنك تحديد معرف العملية كمعطى ثانٍ أو استخدام الخيار "-p"، إذا كنت تريد تنقيح عملية قيد التشغيل:

gdb program 1234
gdb -p 1234

سيربط جي دي بي بالعملية 1234. مع الخيار -p يمكنك حذف اسم ملف البرنامج.

إليك بعض أوامر جي دي بي الأكثر احتياجًا:

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

للحصول على تفاصيل كاملة حول جي دي بي، راجع استخدام جي دي بي: دليل لـ منقح جنو على مستوى المصدر، بقلم ريتشارد م. ستولمان ورولاند هـ. بيش. النص نفسه متاح عبر الإنترنت كمدخلة "gdb" في برنامج "info".

الخيارات

تحدد أي معطيات بخلاف الخيارات ملفًا قابلًا للتنفيذ وملف لب (أو معرف عملية ID)؛ أي أن المعطى الأول الذي يتم مواجهته بدون علامة خيار مرتبطة به يعادل الخيار --se، والثاني، إن وجد، يعادل الخيار -c إذا كان اسم ملف. للعديد من الخيارات أشكال طويلة ومختصرة؛ وكلاهما معروض هنا. يتم التعرف على الأشكال الطويلة أيضًا إذا قمت باختصارها، طالما كان هناك قدر كافٍ من الخيار لإزالة اللبس.

تُعرض الأشكال المختصرة هنا بـ - والأشكال الطويلة بـ -- لتعكس كيفية ظهورها في --help. ومع ذلك، يتعرف جي دي بي على جميع الاصطلاحات التالية لمعظم الخيارات:

"--option=value"
"--option value"
"-option=value"
"-option value"
"--o=value"
"--o value"
"-o=value"
"-o value"

تُعالج جميع الخيارات ومعطيات سطر الأوامر التي تقدمها بترتيب تسلسلي. يحدث الترتيب فرقًا عند استخدام الخيار -x.

سرد جميع الخيارات، مع تفسيرات موجزة.
قراءة جدول الرموز من الملف.
فعل الكتابة في الملفات التنفيذية وملفات اللب (core).
استخدم file كملف تنفيذي للتنفيذ عند الاقتضاء، وفحص البيانات المحضة بالاشتراك مع تفريغ اللب (core dump).
اقرأ جدول الرموز من file واستخدمه كملف تنفيذي.
استخدم file كتفريغ لب (core dump) لفحصه.
نفذ أوامر GDB من file.
نفذ command المُعطى لـ GDB.
نفذ command لـ GDB قبل تحميل التابع (inferior).
أضف directory إلى المسار للبحث عن ملفات المصدر.
لا تنفذ الأوامر من ~/.config/gdb/gdbinit، أو ~/.gdbinit، أو ~/.config/gdb/gdbearlyinit، أو ~/.gdbearlyinit
لا تنفذ الأوامر من أي ملفات تهيئة .gdbinit أو .gdbearlyinit.
"هادئ". لا تطبع رسائل التمهيد وحقوق النسخ. تُكتم هذه الرسائل أيضًا في وضع الدفعة (batch mode).
شغل في وضع الدفعة. اخرج بحالة 0 بعد معالجة كافة ملفات الأوامر المحددة بـ -x.gdbinit ما لم يكن معطلاً). اخرج بحالة غير صفرية في حال حدوث خطأ أثناء تنفيذ أوامر GDB في ملفات الأوامر.

قد يكون وضع الدفعة مفيداً لتشغيل GDB كمرشح، مثلاً لتنزيل وتشغيل برنامج على حاسوب آخر؛ ولجعل هذا أكثر فائدة، فإن الرسالة

خرج البرنامج بشكل طبيعي.

(التي تصدر عادةً كلما انتهى برنامج يعمل تحت تحكم GDB) لا تصدر عند التشغيل في وضع الدفعة.

شغل في وضع الدفعة، تماماً مثل --batch، ولكن بصمت تام. تُكتم كافة مخرجات GDB (لا يتأثر stderr). هذا أكثر هدوءاً بكثير من --silent وسيكون عديم الفائدة في الجلسات التفاعلية.

هذا مفيد بشكل خاص عند استخدام أهداف تعطي رسائل Loading section، على سبيل المثال.

لاحظ أن الأهداف التي تعطي مخرجاتها عبر GDB، بدلاً من الكتابة مباشرة إلى "stdout"، ستُجعل صامتة أيضاً.

غير تفسير سطر الأوامر بحيث تُمرر المعاملات التي تلي هذا الخيار كعوامل للتابع (inferior). كمثال، خذ الأمر التالي:
gdb ./a.out -q

سيبدأ GDB بـ -q، ولن يطبع الرسالة التمهيدية. من ناحية أخرى، استخدام:

gdb --args ./a.out -q

يبدأ GDB مع الرسالة التمهيدية، ويُمرر الخيار إلى التابع.

اربط GDB ببرنامج يعمل بالفعل، باستخدام المعرف pid.
افتح واجهة مستخدم الطرفية.
اقرأ كافة الرموز من ملف الرموز (symfile) المعطى عند أول وصول.
لا تقرأ ملفات الرموز.
سيكون رمز خروج GDB هو نفسه رمز خروج التابع.
اطبع تفاصيل حول ضبط GDB ثم اخرج.
اطبع معلومات الإصدار ثم اخرج.
شغل GDB مستخدماً directory كدليل عمل له، بدلاً من الدليل الحالي.
شغل GDB مستخدماً directory كدليل بيانات له. دليل البيانات هو المكان الذي يبحث فيه GDB عن ملفاته المساعدة.
يضبط إيماكس (Emacs) هذا الخيار عندما يشغل GDB كعملية فرعية. حيث يخبر GDB بإخراج اسم الملف الكامل ورقم السطر بطريقة قياسية ومميزة في كل مرة يُعرض فيها إطار مكدس (ما يتضمن كل مرة يتوقف فيها البرنامج). يبدو هذا التنسيق المميز كحرفي \032، يليهما اسم الملف ورقم السطر وموضع المحرف مفصولاً بينها بنقطتين رأسيتين، وسطر جديد. يستخدم برنامج واجهة إيماكس-إلى-GDB حرفي \032 كإشارة لعرض الكود المصدري للإطار.
اضبط سرعة الخط (معدل البود أو بت في الثانية) لأي واجهة تسلسلية يستخدمها GDB لعملية التنقيح عن بعد.
اضبط المهلة، بالثواني، لعملية التنقيح عن بعد.
شغل باستخدام device لمدخلات ومخرجات برنامجك القياسية.

البيئة

انظر أيضًا

يُحتفظ بالوثائق الكاملة لـ GDB كدليل تكس-إنفو (Texinfo). إذا كانت برامج "info" و "gdb" ووثائق تكس-إنفو لـ GDB مثبتة بشكل صحيح في موقعك، فإن الأمر

info gdb

سيتيح لك الوصول إلى الدليل الكامل.

Using GDB: A Guide to the GNU Source-Level Debugger، ريتشارد م. ستولمان ورولاند هـ. بيش، يوليو 1991.

حقوق النسخ

حقوق النشر (c) 1988-2025 مؤسسة البرمجيات الحرة، المحدودة.

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

(أ) نص الغلاف الخلفي لمؤسسة البرمجيات الحرة هو: "أنت حر في نسخ وتعديل دليل جنو هذا. إن شراء نسخ من دار نشر جنو يدعم مؤسسة البرمجيات الحرة في تطوير جنو وتعزيز حرية البرمجيات."

ترجمة

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

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

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

20 ديسمبر 2025 gdb-17.1