The Vitis debugger extension for Visual Studio Code lets you debug embedded Linux and bare-metal applications targeting supported AMD platforms from inside a Visual Studio Code workspace. The extension connects to the target through Target Communication Framework (TCF) and exposes debug actions through the standard Visual Studio Code debugging interface, including breakpoints, stepping controls, register and variable inspection, call stack navigation, and thread views.
Install the extension from the Vitis installer, then open a Visual Studio Code workspace that contains the application sources to debug. The workspace can contain Linux or bare-metal application sources, depending on the target.
Supported Workflows
The extension supports the following debug workflows:
- Embedded Linux application debug on supported AMD platforms.
- Bare-metal application debug. Bare-metal flows require manual target configuration through the extension settings. See Bare-Metal Considerations below.
- Emulation debug through QEMU.
Target Communication Framework Connection Types
Before starting a debug session, configure the target connection through the Target Communication Framework settings exposed by the extension. The extension supports three TCF connection types:
-
hw_server— Connect to a physical board runninghw_serverfor bare-metal debug. - Linux TCF Agent — Connect to the TCF agent running on the target operating system for embedded Linux application debug.
- QEMU — Connect to a QEMU instance for emulation-based debug.
Bare-Metal Considerations
Bare-metal debug through the Visual Studio Code extension requires
extensive targetSetup configuration, including the
PDI or bitstream, the FSBL, and device initialization. You must supply and maintain
these artifacts manually through the extension settings.
For bare-metal workflows that depend on hardware setup, target programming, or project-integrated debugging, use the Vitis Unified IDE instead. The Vitis Unified IDE manages target configuration, programming, and the debug session as a single integrated flow.
Visual Studio Code and Debug Session Behavior
The Vitis debugger extension operates independently from the Vitis Unified IDE user interface. You control all debug actions directly from the Visual Studio Code interface during a debug session.
The extension does not modify project files or application binaries. Debug session settings apply only to the active session and do not affect other debugging workflows.
Setting Up a Debug Session
For the step-by-step procedure to install the extension, configure a TCF connection, and launch a debug session, see Setting Up the Vitis Debugger Extension in Visual Studio Code.