Saya baru saja men-debug program di gdb dan entah bagaimana saya menemukan fitur baru yang belum pernah saya lihat atau bahkan dengar sebelumnya, tampilan terpisah di mana saya dapat melihat dan menelusuri kode selain memberikan perintah:
Apa ini? Apa yang saya lakukan, atau, lebih spesifiknya, bagaimana saya bisa mendapatkan mode layar terbagi ini lagi? Apakah ada nama untuk mode ini, atau di mana saya dapat membaca tentang cara menggunakannya?
Jawaban:
Ini disebut TUI (tidak main-main). Mulai misalnya dengan
gdbtui
ataugdb -tui
...sumber
layout next
setelah memulai secaragdb
normalAnda dapat memicunya secara dinamis dengan menekan ctrl+ xdan ctrl+ a.
sumber
Ada dua variannya.
Tekan
CTRL
X
bersama lalu1
Tekan 'CTRL' 'X' bersamaan lalu '2'
http://www.cs.fsu.edu/~baker/ada/gnat/html/gdb_23.html
Tangkapan layar tampilan dengan kode dan perakitan.
Lihat juga proyek Github yang luar biasa ini.
sumber
Anda juga dapat memulainya dari shell gdb menggunakan perintah "-" (tanda hubung). Tidak yakin bagaimana mematikannya secara dinamis.
sumber
Dasbor GDB
https://github.com/cyrus-and/gdb-dashboard
Dasbor GDB menggunakan API Python GDB resmi dan mencetak informasi yang Anda inginkan ketika GDB berhenti misalnya setelah
next
, seperti perintah aslidisplay
.Vs TUI:
lebih kuat, karena hanya mencetak ke stdout daripada menempatkan shell pada status kutukan yang lebih ajaib, misalnya:
vi
mode.inputrc
penyebab masalah: /superuser/180512/how-to-turn-off-gdb-tui/927728#927728sangat dapat dikonfigurasi dari Python: Anda dapat memilih apa yang ingin Anda keluaran dan seberapa besar setiap bagian tergantung pada apa yang Anda debug.
Tampilan yang paling berguna sudah diimplementasikan: source, assembly, register, stack, memori, utas, ekspresi ... tetapi seharusnya mudah untuk memperluasnya dengan informasi apa pun yang diekspos di GDB Python API.
TUI hanya memungkinkan menampilkan dua dari sumber, perakitan dan register dan hanya itu. Kecuali jika Anda ingin memodifikasi kode sumber C-nya tentunya ;-)
Saya percaya bahwa GDB harus dikirimkan dengan pengaturan seperti itu di luar kotak dan diaktifkan secara default, itu akan menarik lebih banyak pengguna dengan cara itu.
Oh, dan pengembang utama, Andrea Cardaci , sangat responsif dan luar biasa. Pujian besar.
Lihat juga: Bagaimana cara menyorot dan mewarnai keluaran gdb selama debugging interaktif?
sumber
Ketik
layout
sebagai perintah di gdb dan jendela terpisah akan ditampilkan.sumber
Saat GDB dalam mode standar, penggunaan
win
akan secara otomatis beralih ke mode TUI.Perintah lain untuk mode TUI:
info win
Buat daftar dan berikan ukuran semua jendela yang ditampilkan.
focus next | prev | src | asm | regs | split
Atur fokus ke jendela bernama. Perintah ini memungkinkan untuk mengubah jendela aktif sehingga tombol gulir dapat terpengaruh ke jendela lain.
Baca di sini untuk bantuan lebih lanjut.
sumber
Ada juga alat antarmuka untuk GDB yang disebut cgdb. Bahkan dengan beberapa penyorotan warna. "ESC" untuk beralih ke tampilan kode, "i" untuk beralih kembali ke gdb
sumber
Mode tui jelas-jelas terinspirasi oleh emacs - Saya menemukannya secara tidak sengaja ketika saya menekan ^ Xo, yang beralih di antara jendela terpisah di emacs - Saya terkadang menekannya dengan linglung ketika apa yang seharusnya saya lakukan adalah beralih ke program lain. Bagaimanapun, itu mengarah ke fitur lain yang belum disebutkan, yaitu Anda dapat memindahkan kursor dari jendela kode (di mana Anda dapat menggulir) ke baris perintah, atau sebaliknya, dengan ^ Xo.
sumber