Jawaban:
info locals- Lihat semua variabel lokal; daftar - lihat sumber; rbreak - break on function mencocokkan ekspresi reguler.
set print object onuntuk elemen polimorfik dan set print elements 0dua perintah yang saya gunakan sangat sering. Cukup bermanfaat.
t a a bt(artinya thread apply all backtrace). Dapat digunakan dengan (hampir) semua perintah lainnya. Sangat berguna dengan bt full.
Mulai gdb dengan antarmuka pengguna tekstual
gdb -tui
Mulai di gdb 7.0, ada debugging reversibel , jadi perintah favorit baru Anda adalah:
* 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.
Alih-alih meluncurkan GDB dengan param "-tui" Anda juga dapat beralih ke mode teks setelah beberapa saat menggunakan dengan mengetikkan "wh".
C-x a. Anda juga dapat beralih tampilan dengan C-x 1dan C-x 2ketika dalam mode tui untuk melihat perakitan juga (jika perlu).
Misalnya makro yang didefinisikan dalam stl-views.gdb
Menggunakan -command=<file with gdb commands>opsi saat menjalankan gdb. Sama seperti -x <command file>. File perintah ini dapat berisi perintah-perintah gdb seperti breakpoints, opsi, dll. Berguna seandainya sebuah executable tertentu perlu dimasukkan melalui proses debug berturut-turut menggunakan gdb.
-iexopsi untuk menambahkan perintah individual pada baris perintah gdb.
scripting gdb adalah trik yang bagus, selain itu saya suka mengatur penjadwalan mengunci on / off untuk mencegah jalannya utas lainnya ketika Anda melangkah masuk.
set scheduler-locking oninside gdb
utas info untuk mendaftar semua utas aktif, dan f (#) -> # nomor utas yang ingin Anda alihkan
kadang saya menggunakan gdb untuk mengkonversi dari hex ke desimal atau biner, itu sangat berguna daripada membuka kalkulator
Alih-alih memulai gdb dengan opsi -tui untuk melihat proses anak yang berisi layar yang menyoroti di mana garis pelaksana kode dalam program Anda, masuk dan keluar dari fitur ini dengan Cx o dan Cx a. Ini berguna jika Anda menggunakan fitur dan apa yang sementara tidak digunakan sehingga Anda dapat menggunakan panah atas untuk mendapatkan perintah sebelumnya.
focus cmdsehingga panah atas / bawah berfungsi. Anda kembali menggunakan focus src.
Untuk men-debug STL, tambahkan konten ke .gdbinit, ikuti instruksi ini: