Alih-alih gdbtui
atau di ctrl+x
bawah gdb
yang menunjukkan kode sumber di atas layar, saya ingin melihat ini di editor Vim saya yang akan melompat di antara tab, dan buffer sesuai.
Bagaimana saya bisa melakukan ini?
Alih-alih gdbtui
atau di ctrl+x
bawah gdb
yang menunjukkan kode sumber di atas layar, saya ingin melihat ini di editor Vim saya yang akan melompat di antara tab, dan buffer sesuai.
Bagaimana saya bisa melakukan ini?
Jawaban:
Di antara semua plugin yang saya coba, saya menemukan ConqueGDB menjadi pendekatan terbaik. ConqueGDB menggunakan Conque Shell untuk menanamkan shell interaktif di dalam vim, yang digunakan oleh GDB.
Alur kerja dengan ConqueGDB terdiri tidak memasukkan perintah GDB pada terminal GDB, Anda menggunakan pintasan pada kode sumber vim. Tetapi Anda dapat terus menggunakan prompt GDB jika Anda ingin, untuk perintah lebih lanjut, atau gulir untuk melihat seluruh sesi debug.
Beberapa pemetaan default ConqueGDB, misalnya:
Perhatikan bagaimana garis kursor vim telah digunakan untuk mengeluarkan 'baris cetak' GDB, eksekusi kode saat ini di baris lain (14) dan ada breakpoint pada baris 10.
Untuk menginstal dengan Vundle misalnya:
Plugin 'vim-scripts/Conque-GDB'
Saya menggunakan opsi plugin ini:
let g:ConqueTerm_Color = 2 " 1: strip color after 200 lines, 2: always with color
let g:ConqueTerm_CloseOnEnd = 1 " close conque when program ends running
let g:ConqueTerm_StartMessages = 0 " display warning messages if conqueTerm is configured incorrectly
leader
artinya
<leader>r
berarti <kbd> \ </kbd> + <kbd> r </kbd> di komputer saya. Vim manual memiliki entri untuk itu::help leader
<Leader>b
. Ini menetapkan breakpoint pada posisi kursor. Namun, ini BUKAN beralih, jadi Anda tidak dapat menggunakannya untuk menghapusnya lagi. Sebaliknya, Anda harus menulis 'jelas' pada prompt GDB.
Anda memiliki beberapa plugin yang mengintegrasikan gdb.
Dan ada juga plugin yang mengintegrasikan lldb (dari proyek LLVM)
Tampaknya Bram saat ini (september 2017) bekerja pada integrasi gdb dari dalam vim berkat :terminal
fitur baru . Untuk menggunakannya, kita perlu memuat termdebug
paket (dengan :packadd termdebug
), maka kita akan dapat memulai konsol gdb di jendela vim :TermDebug (+options)
. IMO, kita dapat menganggapnya sebagai masa depan integrasi GDB di bawah Vim.
edit
Perintah GDB
Buka editor di baris saat ini menggunakan perintah:
$EDITOR +<current-line> <current-file>
Standarnya editor
adalah ex
, tetapi vim
juga memahami +<current-line>
formatnya.
Ketika Anda keluar dari editor, Anda kembali ke gdb
.
Ini memungkinkan Anda untuk menelusuri sumber secara bebas dan sangat kuat jika Anda memiliki ctags
integrasi.
Ini adalah built-in one way gdb to vim integrasi orang miskin: hal utama yang hilang adalah pengaturan breakpoints dari Vim.
edit
dan pusat
edit
tidak memusatkan Vim secara default di sekitar sumber, jadi saya telah membuat skrip Python yang melakukannya: https://stackoverflow.com/questions/43557405/how-to-open-the-current-file-at-the- current-line-in-a-text-editor-from-gdb / 43557406 # 43557406
Perintah breakpoint untuk bantuan clipboard
Perintah vim ini menyalin penentu breakpoint tipe:
b <file-path>:<line-number>
ke clipboard:
command! Xg :let @+ = 'b ' . expand('%:p') . ':' . line('.')
Maka Anda bisa menempelkannya ke gdb
.
Ini adalah vim orang miskin untuk integrasi gdb untuk memudahkan pengaturan breakpoints.
Lihat juga: https://stackoverflow.com/questions/3536600/do-you-debug-c-code-in-vim-how
Meskipun secara teknis tidak vim. cgdb adalah versi kutukan dari gdb dengan keybindings mirip vim. Sudah debugger goto saya selama bertahun-tahun: