Giter Site home page Giter Site logo

gdbmi.nvim's Introduction

gdbmi.nvim

Description

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.

Features

  • keymap
  • line hint
  • support vim8
  • show locals in float window

Get started

:GDBMILaunch /usr/bin/gdb a.out

or launch with any argument

:GDBMILaunch /usr/bin/gdb --pid <pid>

Keymap

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

Change keymap

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>',
      \ }

To-do

  • fix bringing up gdb in different tabpage
  • add support for multi inferior

Inspire

gdbmi.nvim's People

Contributors

skt041959 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

gdbmi.nvim's Issues

Improve for flexible jump window

Currently, always using the number 1 window to jump.
But if set a breakpoint or frame up/down in another window, it shouldn't change the position of number 1 window

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.