أكثر الأوامر صعبة / مفيدة لأغراض مصحح GDB [مغلقة

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

  •  16-09-2019
  •  | 
  •  

سؤال

يمكنك نشر أوامرك الأكثر صعوبة ومفيدة أثناء تشغيل مصحح مثل GDB أو DBX.

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

المحلول

  1. backtrace full.: BackTrace الكامل مع المتغيرات المحلية
  2. فوق, تحت, الإطار: انتقل عبر الإطارات
  3. راقب: تعليق العملية عند استيفاء شرط معين
  4. تعيين طباعة جميلة على: يطبع الكود المصدري المنسق بشكل جميل
  5. تعيين تسجيل الدخول: سجل جلسة تصحيح الأخطاء لإظهار للآخرين للحصول على الدعم
  6. تعيين صفيف الطباعة على: طباعة صفيف جميلة
  7. ينهي: استمر حتى نهاية الوظيفة
  8. ممكن و إبطال: تمكين / تعطيل نقاط التوقف
  9. تلد: كسر مرة واحدة، ثم قم بإزالة نقطة التوقف
  10. أين: رقم الخط قيد التنفيذ حاليا
  11. معلومات السكان المحليين: عرض جميع المتغيرات المحلية
  12. معلومات Args.: عرض جميع وسيطات الوظيفة
  13. قائمة: أنظر المصدر
  14. ريشة: كسر وظيفة مطابقة التعبير العادي

نصائح أخرى

بدء GDB مع واجهة المستخدم النصية

gdb -tui

بدءا من 7.0 GDB، هناك تصحيح الأخطاء التي يمكن عكسها, ، لذلك أوامرك المفضلة الجديدة هي:

* reverse-continue ('rc') -- Continue program being debugged but run it in reverse
* reverse-finish -- Execute backward until just before the selected stack frame is called
* reverse-next ('rn') -- Step program backward, proceeding through subroutine calls.
* reverse-nexti ('rni') -- Step backward one instruction, but proceed through called subroutines.
* reverse-step ('rs') -- Step program backward until it reaches the beginning of a previous source line
* reverse-stepi -- Step backward exactly one instruction
* set exec-direction (forward/reverse) -- Set direction of execution.

بدلا من إطلاق GDB مع Param "-tui"، يمكنك أيضا التبديل إلى وضع النص بعد استخدامه عن طريق كتابة "WH".

thread apply all bt أو thread apply all print $pc: للحصول على بسرعة ما تفعله كل المواضيع.

على سبيل المثال وحدات الماكرو المعرفة في stl views.gdb.

باستخدام -command=<file with gdb commands> الخيار أثناء إطلاق النار على GDB. مثل -x <command file>. وبعد يمكن أن يحتوي ملف الأمر هذا على أوامر GDB مثل نقاط التوقف والخيارات وما إلى ذلك مفيد في حالة احتياجات قابل للتنفيذ معين من خلال تصحيح الأخطاء المتعاقبة باستخدام GDB.

البرمجة النصية البرمجة GDB هي خدعة جيدة، بخلاف ذلك أحب تعيين / إيقاف تشغيل / إيقاف تشغيل / إيقاف تشغيل / إيقاف تشغيل مؤشرات الترابط الأخرى عند الخروج في واحد.

بدلا من بدء GDB مع الخيار -Tui لرؤية عملية تابعة لها تحتوي على شاشة توضح حيث يوجد سطر التعليمات البرمجي المنفذ في البرنامج الخاص بك، قفز داخل وخارج هذه الميزة مع CX O و CX A. هذا مفيد إذا كنت تستخدم الميزة وما يجب استخدامه مؤقتا حتى تتمكن من استخدام السهم الأعلى للحصول على أمر سابق.

  • استخدام .gdbinit. (بدء الملف حيث يمكنك كتابة وحدات الماكرو والاتصال من GDB). ضع .gdbinit في الدليل المنزلي الخاص بك بحيث يتم التقاطه في كل مرة يتم تحميل gdb
  • معلومات المواضيع لإدراج جميع المواضيع النشطة، و f (#) -> # رقم الموضوع الذي تريد التبديل إليه

  • في وقت ما أستخدم GDB للتحويل من عرافة إلى عشرية أو ثنائية، مفيد جدا بدلا من فتح آلة حاسبة

    • P / D 0x10 -> يعطي مكافئ عشري 0x10
    • P / T 0x10 -> ما يعادل ثنائي 0x10
    • P / X 256 -> Hex ما يعادل 256

هذا يمكن أن يكون مفيدا، وأنا متأكد من أنه يمكن تحسينه على الرغم من المساعدة في الترحيب:

define mallocinfo
  set $__f = fopen("/dev/tty", "w")
  call malloc_info(0, $__f)
  call fclose($__f)

لتصحيح STL، أضف محتوى إلى .gdbinit، اتبع هذه التعليمات:

http://www.yolinux.com/tutorials/gdb-commands.html#stlderlf.

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