Lauterbach TRACE32® Debug Extension
This extension lets you control TRACE32® from Visual Studio Code through the Debug Adapter Protocol (DAP):
- Attach to and launch TRACE32® PowerView instances.
- Run-state control: Resume and halt the processor's execution, single-step and set breakpoints.
- Source-level debugging: Access local variables and inspect the stack frame.
- Register and memory access
- Disassembly view: Inspect bare-metal assembly.
- Control the TRACE32® PowerView command line from the Debug Console.

- Run PRACTICE scripts (requires the PRACTICE extension).

Installation
- Download this extension from the marketplace or install the
.vsix manually.
- Install a recent version of TRACE32® PowerView (requires
2026.09).
- Ensure that the environment variable
T32SYS is set or configure the path to your installation with the setting trace32.systemPath.
Debug Configurations
You can attach to or launch TRACE32® PowerView instances.
To get started, create debug configuration in launch.json and select the TRACE32 Debug configuration.

Attach to a running TRACE32® PowerView instance
{
"type": "trace32",
"request": "attach",
"name": "TRACE32 Debug: Attach",
"port": 58870,
"trace32SystemPath": "${config:trace32.systemPath}",
"trace32Port": 20000
}
Configuration options:
port: TCP port of the debug adapter (required).
trace32Port: TCP port of the TRACE32 Remote API (required, default: 20000).
trace32Node: Host where the PowerView instance is running (default: localhost).
trace32SystemPath: Path to the TRACE32 system directory (default: trace32.systemPath setting).
trace32SetupScript: PRACTICE script executed after attaching.
trace32SetupScriptArgs: Arguments passed to trace32SetupScript.
trace32SetupScriptTimeout: Timeout in seconds for trace32SetupScript.
trace32SourceTranslations: See Source Path Translations.
Launch a TRACE32® PowerView instance
{
"type": "trace32",
"request": "launch",
"name": "TRACE32 Debug: Launch",
"port": 58870,
"trace32SystemPath": "${config:trace32.systemPath}",
"trace32Target": "t32marm",
"trace32Port": 20000,
"trace32ConnectionScript": "",
"trace32SetupScript": "",
"trace32SetupScriptArgs": [],
"screen": true
}
Configuration options:
port: TCP port of the debug adapter (required).
address: Host where the debug adapter is running (default: localhost).
trace32Port: TCP port of the TRACE32 RCL API (required, default: 20000).
trace32SystemPath: Path to the TRACE32 system directory (default: trace32.systemPath setting).
trace32Target: TRACE32 executable for the target architecture, e.g. t32marm or t32mriscv (required).
trace32ConnectionScript: Connection script executed by PowerView at startup. See Connection Scripts.
trace32SetupScript: PRACTICE script executed after PowerView has started.
trace32SetupScriptArgs: Arguments passed to trace32SetupScript.
trace32SetupScriptTimeout: Timeout in seconds for trace32SetupScript.
trace32SourceTranslations: See Source Path Translations.
screen: Open the PowerView GUI (default: true).
Connection Scripts
A connection script connects PowerView to a debug module, simulator or other interface.
To create a connection script:
- Start a PowerView instance
- Open the connection configuration: menu File > Connection State, or command
CONNECTION.state.
- Click "Create connection script" (command
CONNECTION.Wizard.CreateScript).
For more information on creating connection scripts, refer to PowerView User's Guide.
Source Path Translations
If the ELF file was compiled under a different path than where the sources live in VSCode, the debug adapter cannot find the sources.
Use trace32SourceTranslations to map TRACE32 source paths to VS Code paths.
Each entry is a pair [trace32Path, vscodePath], e.g. for an ELF compiled in \work:
"trace32SourceTranslations": [["\\work", "${workspaceFolder}"]]
Extension Settings
trace32.systemPath: The global TRACE32 system path used for the TRACE32 debugger.
trace32.debugAdapterPath: Path to the t32debugadapter executable. When empty, the adapter is resolved from the TRACE32 system path.
Focus on Debug Console (recommended)
You can configure Visual Studio code such that the focus stays on the Debug Console:
"debug.focusEditorOnBreak": false,
"debug.focusWindowOnBreak": false
Configure the extension to get the context using watch:
"debugVisualizer.debugAdapterConfigurations": {
"trace32": {
"context": "watch"
}
}