In the case of a Linux-based application, it isn’t unreasonable for a local IDE running on the target to also perform its own debugging. That’s a pretty standard thing to do when developing a Linux application on a PC. It’s just a matter of having a debugging agent like gdb installed and preferably an IDE to drive it (otherwise you’ll have to drive gdb from the CLI). That’s pretty much all you need when debugging local Linux applications.
The IDE for BBAI64 would need to interact with gdb in the same ways other gdb-supporting IDEs do. Of course, in this case, the IDE’s UI would be running on a remote browser. I would assume based on this conversation that VSCode is likely already capable of this???
However it gets a bit more complicated when debugging code running on other processors. In these cases, the debugging agent tasks can be split.
For those not familiar, when performing remote debugging to an application running in a remote Linux platform, you have another program that gets invoked on the remote device called gdbserver. On the client, you run gdb, and instruct gdb to perform a remote-debug session by including the IP and Port to the target running gdbserver. Obviously the client and target will need to be accessible to each other on a network for this to work. Once a connection is established, the combination of gdb/gdbserver can perform the same basic functions to the remote application that could be done when debugging an application locally, such as setting breakpoints, monitoring the call stack of each thread, accessing variable values, etc etc.
When conducting a debug session of an asynchronous peer processor in the same microcontroller (e.g. one of the Cortex R5Fs or a PRU), you need a debugging agent application running in Linux to manage and monitor all the same controls that a JTAG connected debug agent would, just accessing those peripherals via physical memory addresses. I would think there are existing Linux based debuggers for doing this given this is becoming a common scenario for developers. What I don’t know is if these debugging agents mimic gdbserver’s API, thus allowing gdb to connect to them or if they implement gdb’s API so the IDE can connect directly to them without involving gdb at all??? Either would be viable solutions.
I have no clue if the PRU debugging offerings have been coded to implement gdb (or gdbserver’s) API, although I suspect not. The IDE would need a plugin written to know how to orchestrate the PRU’s debugging agent.
Doing these sorts of things is not out of the realm of possibility. The question is if it has been developed or not. And if not, is there someone with the knowledge, skill, time, resources, and motivation to do it.