Using the Vitis Debugger Extension in Visual Studio Code - Using the Vitis Debugger Extension in Visual Studio Code - 2026.1 English - UG1400

Vitis Unified Software Platform Documentation: Embedded Software Development (UG1400)

Document_ID
UG1400
Release_Date
2026-07-31
Version
2026.1 English

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.

Important: In Vitis 2026.1, this feature ships at the Internal software delivery milestone. The feature is validated for internal use and is not recommended for production customer flows. For a production-supported debug experience, use the Vitis Unified IDE.

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 running hw_server for 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.