Alih-alih gdbtuiatau di ctrl+xbawah gdbyang 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 gdbtuiatau di ctrl+xbawah gdbyang 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
leaderartinya
<leader>rberarti <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 :terminalfitur baru . Untuk menggunakannya, kita perlu memuat termdebugpaket (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.
editPerintah GDB
Buka editor di baris saat ini menggunakan perintah:
$EDITOR +<current-line> <current-file>
Standarnya editoradalah ex, tetapi vimjuga 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 ctagsintegrasi.
Ini adalah built-in one way gdb to vim integrasi orang miskin: hal utama yang hilang adalah pengaturan breakpoints dari Vim.
edit dan pusat
edittidak 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: