Bunun yerine ekranın üstünde kaynak kodunu gösteren gdbtui
veya ctrl+x
altında gdb
gösteren kodları Vim editörümde sekmeler ve tamponlar arasında atlayacağımı görmek istiyorum.
Bunu nasıl yapabilirim?
Bunun yerine ekranın üstünde kaynak kodunu gösteren gdbtui
veya ctrl+x
altında gdb
gösteren kodları Vim editörümde sekmeler ve tamponlar arasında atlayacağımı görmek istiyorum.
Bunu nasıl yapabilirim?
Yanıtlar:
Çalıştığım tüm eklentiler arasında ConqueGDB'yi en iyi yaklaşım olarak buldum . ConqueGDB, GDB tarafından kullanılan vim içerisine etkileşimli bir kabuk yerleştirmek için Conque Kabuğunu kullanır .
ConqueGDB ile iş akışı, GDB terminaline GDB komutları girmemekten ibarettir, siz vim kaynak kodunda kısayollar kullanırsınız. Ancak, daha gelişmiş komutlar için isterseniz GDB komut istemini kullanmaya devam edebilir veya tüm hata ayıklama oturumunu görmek için kaydırma yapabilirsiniz.
Bazı ConqueGDB varsayılan eşlemeleri, örneğin:
Vim imleç satırının GDB 'yazdırma satırı' vermek için nasıl kullanıldığına dikkat edin, kodun mevcut yürütülmesi başka bir satırda (14) ve satır 10'da bir kesme noktası var.
Örneğin Vundle ile kurmak için:
Plugin 'vim-scripts/Conque-GDB'
Bu eklenti seçeneklerini kullanıyorum:
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
demek
<leader>r
, bilgisayarlarımda <kbd> \ </kbd> + <kbd> r </kbd> anlamına gelir. Vim manual bunun için bir giriş yaptı::help leader
<Leader>b
. İmleç konumunda bir kesme noktası belirler. Ancak, bir geçiş DEĞİLDİR, bu nedenle tekrar kaldırmak için kullanamazsınız. Aksine, GDB isteminde 'net' yazmanız gerekecektir.
Gdb'yi bütünleyen birçok eklentiniz var.
Ayrıca, lldb'yi bütünleştiren bir eklenti var (LLVM projesinden)
Bram, şu anda (Eylül 2017), yeni :terminal
özellik sayesinde gdb'nin vim içinden entegrasyonunda çalışıyor . Kullanmak için, termdebug
paketi (with :packadd termdebug
) yüklememiz gerekir , sonra vim penceresinde bir gdb konsolu başlatabiliriz :TermDebug (+options)
. IMO, Vim kapsamında GDB entegrasyonunun geleceği olarak düşünebiliriz.
GDB edit
komutu
Komutu kullanarak geçerli satırda bir editör açar:
$EDITOR +<current-line> <current-file>
Varsayılan editor
olduğunu ex
, ancak vim
aynı zamanda anlar +<current-line>
biçimi.
Editörden çıktığınızda tekrar girersiniz gdb
.
Bu, kaynağa serbestçe göz atmanızı sağlar ve ctags
entegrasyonunuz varsa özellikle güçlüdür .
Bu, fakir bir insanın yerleşik bir şekilde gdb'yi vim entegrasyonuna çeviriyor: ana eksiklik, kesme noktalarını Vim'den ayarlamak.
edit
ve merkez
edit
Vim'i kaynak çevresinde varsayılan olarak merkezlemediğinden, bunu yapan bir Python betiği oluşturdum: https://stackoverflow.com/questions/43557405/how-to-open-the-current-file-at-the- geçerli-line-in-a-metin-editörü-den-gdb / 43557406 # 43557406
Pano yardımcısına Breakpoint komutu
Bu vim komutu, aşağıdaki türden bir kesme noktasını kopyalar:
b <file-path>:<line-number>
panoya:
command! Xg :let @+ = 'b ' . expand('%:p') . ':' . line('.')
O zaman bunu sadece yapıştırabilirsiniz gdb
.
Bu, yoksul bir erkeğin sınır değerleri belirlemeyi kolaylaştırmak için gdb entegrasyonuna yönelik vim.
Ayrıca bakınız: https://stackoverflow.com/questions/3536600/do-you-debug-c-code-in-vim-how
Teknik olarak vim olmasa da. cgdb, gdb'nin vim benzeri anahtarlıklar içeren bir curses sürümüdür. Yıllardır benim hata ayıklayıcım oldu: