Jawaban:
info locals
- Lihat semua variabel lokal; daftar - lihat sumber; rbreak - break on function mencocokkan ekspresi reguler.
set print object on
untuk elemen polimorfik dan set print elements 0
dua 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 1
dan C-x 2
ketika 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.
-iex
opsi 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 on
inside 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 cmd
sehingga panah atas / bawah berfungsi. Anda kembali menggunakan focus src
.
Untuk men-debug STL, tambahkan konten ke .gdbinit, ikuti instruksi ini: