fitur yang sangat bagus. Ketinggalan sejauh ini ...
PraveenMax
45
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.
Ctrl-a untuk beralih kembali ke tampilan baris perintah 'normal'!
Kevin
2
"- 'dapat digunakan instaed' wh '. lebih pendek lebih baik .. :)
raj_gt1
6
Ctrl-a a? Apakah ini lelucon? Terlihat lebih seperti tmux/ screenperintah. Dan tidak bekerja untuk saya. Ini harus menjadi salah satu sebagai per docs : C-x C-a, C-x a, C-x A.
x-yuri
Sebenarnya C-x a. Anda juga dapat beralih tampilan dengan C-x 1dan C-x 2ketika dalam mode tui untuk melihat perakitan juga (jika perlu).
Sam Whitlock
16
thread apply all btatau thread apply all print $pc: Untuk mengetahui dengan cepat apa yang dilakukan semua utas.
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.
Anda juga dapat menggunakan -iexopsi untuk menambahkan perintah individual pada baris perintah gdb.
doug65536
5
scripting gdb adalah trik yang bagus, selain itu saya suka mengatur penjadwalan mengunci on / off untuk mencegah jalannya utas lainnya ketika Anda melangkah masuk.
bagaimana Anda menjadikan ini default? Saya mencobanya .gdbinit tetapi gdb mencetak /home/omry/.gdbinit:1: Kesalahan dalam file perintah bersumber: Target 'Tidak ada' tidak dapat mendukung perintah ini.
Omry Yadan
4
Menggunakan .gdbinit (memulai file di mana Anda dapat menulis makro dan menelepon dari gdb). Tempatkan .gdbinit di direktori home Anda sehingga diambil setiap kali gdb dimuat
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.
Jawaban:
sumber
info locals
- Lihat semua variabel lokal; daftar - lihat sumber; rbreak - break on function mencocokkan ekspresi reguler.set print object on
untuk elemen polimorfik danset print elements 0
dua perintah yang saya gunakan sangat sering. Cukup bermanfaat.t a a bt
(artinyathread apply all backtrace
). Dapat digunakan dengan (hampir) semua perintah lainnya. Sangat berguna denganbt full
.Mulai gdb dengan antarmuka pengguna tekstual
sumber
Mulai di gdb 7.0, ada debugging reversibel , jadi perintah favorit baru Anda adalah:
sumber
Alih-alih meluncurkan GDB dengan param "-tui" Anda juga dapat beralih ke mode teks setelah beberapa saat menggunakan dengan mengetikkan "wh".
sumber
Ctrl-a a
? Apakah ini lelucon? Terlihat lebih sepertitmux
/screen
perintah. Dan tidak bekerja untuk saya. Ini harus menjadi salah satu sebagai per docs :C-x C-a
,C-x a
,C-x A
.C-x a
. Anda juga dapat beralih tampilan denganC-x 1
danC-x 2
ketika dalam mode tui untuk melihat perakitan juga (jika perlu).thread apply all bt
atauthread apply all print $pc
: Untuk mengetahui dengan cepat apa yang dilakukan semua utas.sumber
Misalnya makro yang didefinisikan dalam stl-views.gdb
sumber
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.sumber
-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.
sumber
set scheduler-locking on
inside gdbutas 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
sumber
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.
sumber
focus cmd
sehingga panah atas / bawah berfungsi. Anda kembali menggunakanfocus src
.Ini bisa berguna, saya yakin itu bisa diperbaiki, tolong bantu:
sumber
Untuk men-debug STL, tambahkan konten ke .gdbinit, ikuti instruksi ini:
http://www.yolinux.com/TUTORIALS/GDB-Commands.html#STLDEREF
sumber