Debugging Self-Relocating Programs - 2025.1 English - UG1400

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

Document ID
UG1400
Release Date
2025-05-29
Version
2025.1 English

In some resource-constrained embedded designs, users often require the ability to load and relocate their applications. A self-relocating program is a program that relocates its own code and data sections during runtime. The debug information available in the ELF file does not specify where the program sections will be relocated to. Therefore, you must provide the debugger with the relative address to which the program sections will be relocated. You can do this either through the Vitis Unified IDE or CLI.

To perform the process in the Vitis Unified IDE, update the launch.json file of the application you want to debug. Check the box Is Self Relocating Application and provide the relative address as shown in the screenshot below.

To perform the process for XSDB, use the following memmap command to provide the address to which the program sections are allocated: memmap -reloc <addr> -file <path-to-elf>