raspberrypi / pico-vscode

The official VS Code extension for Raspberry Pi Pico development. It includes several features to simplify project creation and deployment.
https://marketplace.visualstudio.com/items?itemName=raspberry-pi.raspberry-pi-pico
Mozilla Public License 2.0
131 stars 16 forks source link

Can't view (RISC-V) registers in Debug view #95

Open NeilBaner opened 1 month ago

NeilBaner commented 1 month ago

I'm not sure if I'm just looking in the wrong place, but I can't find anywhere where I can see the state of the RISC-V CPU registers of my Pi Pico 2 in the VS Code Debug panel. I can read them with the gdb command info registers, but it would be nice to have them in the GUI as well.

I am running the blink example program in RISC-V mode, modified with an external function implemented in RV assembly. The program runs and behaves as expected. I am debugging with a Raspberry Pi Debug Probe connected to a Raspberry Pi Pico 2. The debugger works as expected after following the instructions in the "Getting Started with Raspberry Pi Pico" guide.

I was looking for something like the "Registers" panel in Keil MDK: https://www.keil.com/support/man/docs/uv4cl/uv4cl_db_dbg_cpuregs.htm. It's also available in other IDEs like the STM32Cube IDE.

will-v-pi commented 1 month ago

Yes, the current Cortex Debug extension used for debugging is only designed for Arm Cortex processors, so searches for Arm register names when generating the registers view, not RISC-V. It works fine for everything in RISC-V other than the registers view, which you can still view with info r

I’ll leave this open for anyone else who discovers this, so they can see the workaround (to use info r manually), but I don’t think we’re planning to fix this as a priority. As far as I’m aware, the Keil MDK and STM32Cube IDEs both only work with Arm processors too, and have no support for RISC-V.

NeilBaner commented 1 month ago

I see, thanks for the information. I didn't realize the extension uses cortex-debug, but it makes sense that it would take quite a bit of effort to add this feature, then.