lldb.nvim icon indicating copy to clipboard operation
lldb.nvim copied to clipboard

Define debugger-generic event-based interface

Open critiqjo opened this issue 9 years ago • 2 comments

Separate out LLDB-specific logic and define a debugger-generic event-based interface. This will enable adding support for other debuggers using output parsing (e.g. GDB support can be added by borrowing parser code from Conque-GDB).

  • [ ] Separate out the event loop into LLDB event loop and Controller event loop
  • [ ] Define a set of debugger events accepted by Controller (update a debug-buffer contents, (un)highlight BP or PC lines, (un)mark a breakpoint, etc.)
  • [ ] Define a set of user events accepted by *Controller" (requesting to change mode, execute a command, create a breakpoint, send an interrupt, exit, etc.)
  • [ ] Define a generic interruption interface that should be implemented by a debugger event loop class, using which Controller can request the debugger to perform certain actions (based on user request).

(The plugin name along with :LL-prefix of commands may have to be changed, after adding support for more debuggers.)

critiqjo avatar Jan 13 '16 14:01 critiqjo

+1

Govinda-Fichtner avatar May 23 '16 08:05 Govinda-Fichtner

Support for GDB can be implemented using https://github.com/cs01/pygdbmi without much pain. A good strategy might be to fork this and replace LLDB with GDB, then figure out a generic API that can play well with both, and finally combining the two.

While at it, it might be good to keep in mind Vim channels too (a bit). #34

(These are ideas that I'm unlikely to implement myself.)

critiqjo avatar Mar 07 '17 16:03 critiqjo