جي دي بي(1)

الاسم
gdb - منقّح جنو

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

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

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

•   بدء برنامجك، مع تحديد أي شيء قد يؤثر على سلوكه.

•   جعل برنامجك يتوقف عند شروط محددة.

•   فحص ما حدث عندما يتوقف برنامجك.

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

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

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

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

        gdb program

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

        gdb program core

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

        gdb program 1234
        gdb -p 1234

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

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

break [الملف:][الدالة|السطر]
    وضع نقطة توقف عند الدالة أو السطر (في الملف).

run [قائمة_المعطيات]
    بدء برنامجك (مع قائمة_المعطيات، إذا حُددت).

bt  تتبع خلفي: عرض مكدس البرنامج.

print تعبير
    عرض قيمة تعبير ما.

c   مواصلة تشغيل برنامجك (بعد التوقف، مثلاً عند نقطة توقف).

next
    تنفيذ سطر البرنامج التالي (بعد التوقف)؛ مع تخطي فوق أي استدعاءات دوال في السطر.

edit [الملف:]الدالة
    النظر في سطر البرنامج حيث هو متوقف حاليًا.

list [الملف:]الدالة
    كتابة نص البرنامج في محيط المكان الذي توقف فيه حاليًا.

step
    تنفيذ سطر البرنامج التالي (بعد التوقف)؛ مع الخطو داخل أي استدعاءات دوال في السطر.

help [الاسم]
    إظهار معلومات حول أمر جي دي بي الاسم، أو معلومات عامة حول استخدام جي دي بي.

quit
exit
    الخروج من جي دي بي.

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

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

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

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

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

--help
-h  سرد جميع الخيارات، مع تفسيرات موجزة.

--symbols=الملف
-s الملف
    قراءة جدول الرموز من الملف.

--write
    فعل الكتابة في الملفات التنفيذية وملفات اللب (core).

--exec=file
-e file
    استخدم file كملف تنفيذي للتنفيذ عند الاقتضاء، وفحص البيانات المحضة بالاشتراك مع تفريغ اللب (core dump).

--se=file
    اقرأ جدول الرموز من file واستخدمه كملف تنفيذي.

--core=file
-c file
    استخدم file كتفريغ لب (core dump) لفحصه.

--command=file
-x file
    نفذ أوامر GDB من file.

--eval-command=command
-ex command
    نفذ command المُعطى لـ GDB.

--init-eval-command=command
-iex
    نفذ command لـ GDB قبل تحميل التابع (inferior).

--directory=directory
-d directory
    أضف directory إلى المسار للبحث عن ملفات المصدر.

--nh
    لا تنفذ الأوامر من ~/.config/gdb/gdbinit، أو ~/.gdbinit، أو ~/.config/gdb/gdbearlyinit، أو ~/.gdbearlyinit

--nx
-n  لا تنفذ الأوامر من أي ملفات تهيئة .gdbinit أو .gdbearlyinit.

--quiet
--silent
-q  "هادئ". لا تطبع رسائل التمهيد وحقوق النسخ. تُكتم هذه الرسائل أيضًا في وضع الدفعة (batch mode).

--batch
    شغل في وضع الدفعة. اخرج بحالة 0 بعد معالجة كافة ملفات الأوامر المحددة بـ -x (و .gdbinit ما لم يكن معطلاً). اخرج بحالة غير صفرية في حال حدوث خطأ أثناء تنفيذ أوامر GDB في ملفات الأوامر.

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

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

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

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

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

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

--args prog [arglist]
    غير تفسير سطر الأوامر بحيث تُمرر المعاملات التي تلي هذا الخيار كعوامل للتابع (inferior). كمثال، خذ الأمر التالي:

            gdb ./a.out -q

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

            gdb --args ./a.out -q

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

--pid=pid
    اربط GDB ببرنامج يعمل بالفعل، باستخدام المعرف pid.

--tui
    افتح واجهة مستخدم الطرفية.

--readnow
    اقرأ كافة الرموز من ملف الرموز (symfile) المعطى عند أول وصول.

--readnever
    لا تقرأ ملفات الرموز.

--return-child-result
    سيكون رمز خروج GDB هو نفسه رمز خروج التابع.

--configuration
    اطبع تفاصيل حول ضبط GDB ثم اخرج.

--version
    اطبع معلومات الإصدار ثم اخرج.

--cd=directory
    شغل GDB مستخدماً directory كدليل عمل له، بدلاً من الدليل الحالي.

--data-directory=directory
-D  شغل GDB مستخدماً directory كدليل بيانات له. دليل البيانات هو المكان الذي يبحث فيه GDB عن ملفاته المساعدة.

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

-b baudrate
    اضبط سرعة الخط (معدل البود أو بت في الثانية) لأي واجهة تسلسلية يستخدمها GDB لعملية التنقيح عن بعد.

-l timeout
    اضبط المهلة، بالثواني، لعملية التنقيح عن بعد.

--tty=device
    شغل باستخدام 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 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

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