Zamiast gdbtui
lub ctrl+x
pod gdb
którym pokazuje kod źródłowy na górze ekranu, chciałbym zobaczyć to w moim edytorze Vima, który przeskakiwałby między kartami i buforami odpowiednio.
Jak mogę to zrobić?
external-command
ide
imię
źródło
źródło
Odpowiedzi:
Spośród wszystkich wtyczek, które wypróbowałem, ConqueGDB jest najlepszym podejściem. ConqueGDB używa Conque Shell do osadzenia interaktywnej powłoki w vimie, używanej przez GDB.
Przepływ pracy z ConqueGDB nie polega na wpisywaniu poleceń GDB na terminalu GDB, używasz skrótów na kodzie źródłowym vim. Możesz jednak nadal używać wiersza polecenia GDB, aby uzyskać bardziej zaawansowane polecenia, lub przewinąć, aby wyświetlić całą sesję debugowania.
Niektóre domyślne odwzorowania ConqueGDB, na przykład:
Zauważ, jak linia kursora vima została użyta do wydania „wiersza wydruku” GDB, bieżące wykonanie kodu znajduje się w innej linii (14), aw linii 10 jest punkt przerwania.
Aby na przykład zainstalować za pomocą Vundle:
Korzystam z tych opcji wtyczek:
źródło
leader
znaczy<leader>r
oznacza <kbd> \ </kbd> + <kbd> r </kbd> na moich komputerach. Podręcznik Vima ma na to wpis::help leader
<Leader>b
. Ustawia punkt przerwania w pozycji kursora. Jednak NIE jest to przełącznik, więc nie można go użyć do ponownego usunięcia. Zamiast tego będziesz musiał napisać „wyczyść” w wierszu polecenia GDB.Masz kilka wtyczek, które integrują gdb.
Jest też wtyczka, która integruje lldb (z projektu LLVM)
Wygląda na to, że Bram obecnie (wrzesień 2017 r.) Pracuje nad integracją gdb z poziomu vima dzięki nowej
:terminal
funkcji. Aby go użyć, musimy załadowaćtermdebug
pakiet (za pomocą:packadd termdebug
), a następnie będziemy mogli uruchomić konsolę gdb w oknie vim za pomocą:TermDebug (+options)
. IMO możemy uznać za przyszłość integracji GDB w ramach Vima.źródło
edit
Polecenie GDBOtwiera edytor w bieżącym wierszu za pomocą polecenia:
Domyślnie
editor
jestex
, alevim
także rozumie+<current-line>
format.Po wyjściu z edytora wracasz do
gdb
.Pozwala to na swobodne przeglądanie źródła i jest szczególnie wydajne, jeśli masz
ctags
integrację.Jest to wbudowana w gdb integracja z vimem przez biedaka: główną brakującą rzeczą jest ustalenie punktów przerwania z Vima.
edit
i centrumedit
domyślnie nie wyśrodkowuje Vima wokół źródła, więc stworzyłem skrypt Pythona, który to robi: https://stackoverflow.com/questions/43557405/how-to-open-the-current-file-at-the- current-line-in-a-text-editor-from-gdb / 43557406 # 43557406Polecenie Breakpoint dla pomocnika schowka
Ta komenda vim kopiuje specyfikator punktu przerwania typu:
do schowka:
Następnie możesz po prostu wkleić to w
gdb
.Jest to wizja biedaka do integracji z gdb, aby ułatwić ustawianie punktów przerwania.
Zobacz także: https://stackoverflow.com/questions/3536600/do-you-debug-c-code-in-vim-how
źródło
Chociaż nie jest to technicznie vim. cgdb to przeklęta wersja gdb z podobnymi do vimów skrótami klawiszowymi. To był mój debugger goto od lat:
https://cgdb.github.io/
źródło