probe-rs/vscode-legacy

Scope of the plugin

tl8roy opened this issue · 3 comments

We are starting out with a basic list of what needs doing to get Embedded Rust to beginners. One of the items on the list is improving IDE support for VS Code.

I am wondering if there is a scope regarding what the probe-rs vs code plugin is planning to achieve. I think it is likely that such a plugin will cover off some if not most of our requirements, but would like to validate that.

Last time I talked about this with yatekii the scope was trying to implement the Microsoft DAP protocol on the server side here (https://code.visualstudio.com/api/extension-guides/debugger-extensionextension) so an eventual client can easily debug any target via probe-rs. On top of the DAP server there is also a tiny bit of VSCode glue code in this repo to properly get it integrated into the editor but in theory the DAP server should be generic over every DAP client.

This plugin was created to implement a whole debugger which supports the Debug Adapter Protocol. That's quite a lot of work, as it's basically a reimplementation of GDB in Rust. Recently, the headcrab project has started with the goal to create a debugging library for Rust, and the current plan is to leverage that for the debugger part.

I think it might make more sense to setup something with an existing debugger like GDB or LLDB for now, and focus on other parts such as flashing or RTT. The GDB server part of probe-rs works quite well, so it should be possible to setup a VSCode configuration which leverages that.

My idea would be a plugin with the following features:

  • One button flashing
  • Automatic configuration of GDB / LLDB, and automatic start of the GDB server
  • Integration of RTT / Serial output in an VS Code window

and maybe more.

My idea would be a plugin with the following features:

* One button flashing

* Automatic configuration of GDB / LLDB, and automatic start of the GDB server

* Integration of RTT / Serial output in an VS Code window

The first and last are definitely of interest to the Patina project, so we will help out when we can.