If you are using a multi-core (multi-domain) System on Chip (SoC) and want to debug the firmware on several processors simultaneously, the extension starts a separate debugging session for each processor. Images that run on the same processor are loaded as inferiors in that processor's session. If you want to debug a single-core SoC or only debug the application core firmware, one debugging session is enough.
To debug an SoC that contains several cores or domains, complete the following steps:
-
Check that the cores or domains that you want to debug have the debug optimizations enabled.
Note
For multi-domain applications built with sysbuild, each sysbuild domain can have its own debug optimizations enabled independently. See How to debug domains for more information.
-
In the Applications View, select the top build configuration of your multi-core (multi-domain) application.
-
In the Actions View, click Debug.
A quick pick appears with the available processor sessions and images. -
Select each Start a session on... entry for the processors you want to debug.
-
Under each selected processor, optionally select the and stop in... entries for the images at whose entry points execution must stop.
Selecting an entry point also selects its processor session. -
Click OK to confirm the selection.
The extension programs the connected device, loads the selected processor's images as GDB inferiors, and opens the Debugging View. The standard Debug action flashes the complete sysbuild configuration once and then attaches the selected processor sessions.Once all processor sessions are established, the debugging control widget lists an entry for each selected processor.
Note
When working with multiple sessions, the Call Stack area is arranged by sessions and their threads. Selecting a thread automatically changes the active session.
-
Continue code execution on the application core.
The startup code releases the signal to start the cores or domains and allocates the necessary GPIO pins for it. - Continue code execution on the other processors.
If you want to reset a core or domain while debugging, make sure to first reset the application core and execute the code.