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>