We have an application with multiple Verdin Boards, which need to communicate with each other.
While we can very easily run a debug session on a single board, we can not figure out a straightforward way to run debugging sessions on multiple boards simultaneously.
We have tried duplicating the VSCode session, and changing the board used in the second window. This does not work due to how the launch configurations are set up, since it changes the settings in both instances.
One way which (somewhat) works is to copy the entire workspace, and launch another VSCode session in the copied directory. While this works, it is not the nicest way to do things since we have to copy the entire workspace everytime we change something and then apply all the settings changes again.
We think it should be possible to have different launch configurations for multiple boards, but we would have to duplicate all tasks as well. This should work I think, but we wanted to check if there are other options before we start diving into this option.
At best, we were hoping to have multiple windows open, and have one board running in each window.
Is there an “intended” way to be able to debug on multiple targets at the same time?
Does anyone have other ideas on how to achieve this?
We are looking for any recommendations on how to achieve this in a straightforward way.
Could you explain your use-case here in more detail so that we can better understand what you’re trying to achieve.
You want to be able to debug multiple devices at once. What’s the reason for this? Is each device running a different applicaiton/process? Do the devices need to be in sync? Is there some other reason?
We have a final application with multiple stations, which need to communicate with each other.
We are currently developing the software module which implements our communication process (which is a proprietary process), so that other parts of the application can then use it.
Each station has a verdin based board (currently a Dhalia board), and our communication hardware.
To develop this communication module, we would like to run our code (which is the same for both modules) on two Verdin boards, and be able to debug both of them simultaneously from the same host.
Also, in the future, it may prove useful to be able to debug multiple targets at the same time once we start doing integration testing with the whole application.
In order to directly answer your questions:
You want to be able to debug multiple devices at once. What’s the reason for this?
We have a communication process between the two devices, which we are implementing ourselves. We want to be able to step through this code on both devices in order to check if the communication control flow is working as intended. (And also to check some timing related edge cases)
Is each device running a different applicaiton/process
They are running the same code, but it’s a different process, since it’s a different device/hardware altogether.
Do the devices need to be in sync?
Not in terms of the debugger, they can be separate debugging instances.
Apologies for the late response I was away from the office for a bit and lost track of this.
After discussion this with our IDE team, in short there’s no “easy” way to do this. The team suggested some creative approaches like modifying
launch.json which controls the debug process. Then manually adding data for multiple devices here.
That said this was just a rough idea and not something tested by us.