This is a plugin for Neovim to integrate with GDB. It's not stable yet, might have some bugs.
This plugin use the power of Neovim remote plugin and GDB's new-ui command. The new-ui command requires GDB version be 7.12+. This plugin will create a pseudo tty in Python client to connect to GDB's second interface.
Currently, it doesn't support Native Python executable in Windows system, which don't have os.openpty.
You can use MingW Python or use Cygwin environment.
- keymap
- line hint
- support vim8
- show locals in float window
:GDBMILaunch /usr/bin/gdb a.out
or launch with any argument
:GDBMILaunch /usr/bin/gdb --pid <pid>
| Default Mapping | Mode | Command | Description |
|---|---|---|---|
<leader>dn |
n | :GDBMINext | next |
<leader>ds |
n | :GDBMIStep | step |
<leader>dc |
n | :GDBMIContinue | continue |
<leader>da |
n | :GDBMIAdvance | advance |
<leader>du |
n | :GDBMIUntil | until |
<leader>df |
n | :GDBMIFinish | finish |
<leader>db |
n,v | :GDBMIBreakpointToggle | break |
<leader>dU |
n | :GDBMIFrameUp | up |
<leader>dD |
n | :GDBMIFrameDown | down |
<leader>de |
n,v | :GDBMIEvalWord | print <cword> |
<leader>dp |
n | jump to the current line in code window | |
<leader>dd |
n | jump to or raise up the gdb window | |
<up> |
t | scroll code window up | |
<down> |
t | scroll code window down | |
<pageup> |
t | scroll code window page up | |
<pagedown> |
t | scroll code window page down |
let g:gdbmi_config = {
\ 'key_until': '<leader>du',
\ 'key_advance': '<leader>da',
\ 'key_continue': '<leader>dc',
\ 'key_next': '<leader>dn',
\ 'key_step': '<leader>ds',
\ 'key_finish': '<leader>df',
\ 'key_reverse_continue': '<leader>dC',
\ 'key_reverse_next': '<leader>dN',
\ 'key_reverse_step': '<leader>dS',
\ 'key_reverse_finish': '<leader>dF',
\ 'key_breakpoint': '<leader>db',
\ 'key_frameup': '<leader>dU',
\ 'key_framedown': '<leader>dD',
\ 'key_eval': '<leader>de',
\ 'key_ui_bringupgdb': '<leader>dd',
\ 'key_ui_tocode': '<leader>dp',
\ 'key_ui_scrolldown': '<down>',
\ 'key_ui_scrollup': '<up>',
\ 'key_ui_scrollpagedown': '<pagedown>',
\ 'key_ui_scrollpageup': '<pageup>',
\ }
or
let g:gdbmi_config_override = {
\ 'key_continue': '<F5>',
\ }
- fix bringing up gdb in different tabpage
- add support for multi inferior