This introduced more hacks than it should. In particular, the sequence about stack trace requesting became very messy. When we attach, we don't instantly get a stopped event. This required making the Pause command actually work (sort of). In this case we often won't have a proper current thread. Instead we sort of request all threads whenever we get a thread event, thought his is horribly hacky and we should really just use the thread event as-is. We then attempt to pause ALL threads on pause and continue requests when we don't know the current thread. Another issue is that when pausing it's likely we don't have the source location info for the pause location (something like select() or whatever), so we only set the current frame to the lowest one we have source for. This sort of roughly matches what you want. This whole thing makes it clear that threads and stack trace in separate panes makes no sense. We need to replicate the hierarchy in the variables view for threads and stack traces. |
||
|---|---|---|
| autoload | ||
| plugin | ||
| python3/vimspector | ||
| support | ||
| .gitignore | ||
| .vimspector.json | ||
| LICENCE | ||
| README.md | ||
| tox.ini | ||
vimspector - A multi language debugger for Vim
Status
This is a work in progress. It barely functions.
About
The motivation is that debugging in Vim is a pretty horrible experience, particularly if you use multiple languages. With pyclewn no more and the built-in termdebug plugin limited to gdb, I wanted to explore options.
While Language Server Protocol is well known, the Debug Adapter Protocol is less well known, but achieves a similar goal: language agnostic API abstracting debuggers from clients.
The aim of this project is to provide a simple but effective debugging experience in Vim for multiple languages, by leveraging the debug adapters that are being built for VScode.
The ability to do remote debugging is a must. This is key to my workflow, so baking it in to the debugging experience is a top bill goal for the project.
Features
None yet.
Supported Languages
None yet.
Demo
Well there is a proof of concept, showing some of the features and the use of different debug adapters and languages (c++ and Python):
Yes, it's buggy right now, and the UI is all placeholder, but it shows that there is some potential, I think.
FAQ
- Q: Does it work? A: Not yet.
License
Copyright © 2018 Ben Jackson