vimspector - A multi-language debugging system for Vim http://puremourning.github.io/vimspector-web
Find a file
Ben Jackson b02d35e78d Very hacky: Support for attach
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.
2018-05-27 23:40:37 +01:00
autoload Add a reset command to undo all the UI and reset everything 2018-05-27 21:40:31 +01:00
plugin Talk to a job from python 2018-05-16 02:31:23 +01:00
python3/vimspector Very hacky: Support for attach 2018-05-27 23:40:37 +01:00
support Squash some distrating warnings 2018-05-22 23:00:26 +01:00
.gitignore Talk to a job from python 2018-05-16 02:31:23 +01:00
.vimspector.json Very hacky: Support for attach 2018-05-27 23:40:37 +01:00
LICENCE Talk to a job from python 2018-05-16 02:31:23 +01:00
README.md Demo is too big 2018-05-22 01:41:24 +01:00
tox.ini Talk to a job from python 2018-05-16 02:31:23 +01:00

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

  1. Q: Does it work? A: Not yet.

License

Apache 2.0

Copyright © 2018 Ben Jackson