Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Define debugger-generic event-based interface #21

Open
4 tasks
critiqjo opened this issue Jan 13, 2016 · 2 comments
Open
4 tasks

Define debugger-generic event-based interface #21

critiqjo opened this issue Jan 13, 2016 · 2 comments

Comments

@critiqjo
Copy link
Collaborator

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 critiqjo added this to the v2.0 milestone Jan 13, 2016
@Govinda-Fichtner
Copy link

+1

@critiqjo
Copy link
Collaborator Author

critiqjo commented Mar 7, 2017

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.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

2 participants