Arm Community
Arm Community
  • Site
  • User
  • Site
  • Search
  • User
Arm Community blogs
Arm Community blogs
Tools, Software and IDEs blog ERROR(CMD685-COR303): Failed to load symbols for "x" - Cannot determine current address space as target is running, specify an explicit load offset
  • Blogs
  • Mentions
  • Sub-Groups
  • Tags
  • Jump...
  • Cancel
More blogs in Arm Community blogs
  • AI blog

  • Announcements

  • Architectures and Processors blog

  • Automotive blog

  • Embedded and Microcontrollers blog

  • Internet of Things (IoT) blog

  • Laptops and Desktops blog

  • Mobile, Graphics, and Gaming blog

  • Operating Systems blog

  • Servers and Cloud Computing blog

  • SoC Design and Simulation blog

  • Tools, Software and IDEs blog

Tags
  • error
  • ds-5
  • symbols
  • Debugger
Actions
  • RSS
  • More
  • Cancel
Related blog posts
Related forum threads

ERROR(CMD685-COR303): Failed to load symbols for "x" - Cannot determine current address space as target is running, specify an explicit load offset

Joe Alderson
Joe Alderson
September 12, 2014
1 minute read time.

What does the following error message mean?

"ERROR(CMD685-COR303): Failed to load symbols for "x" - Cannot determine current address space as target is running, specify an explicit load offset"

Answer

When loading the symbols for an image you may see an error such as:

ERROR(CMD685-COR303):

! Failed to load symbols for "vmlinux"
! Cannot determine current address space as target is running, specify an explicit load offset

ARM application processors typically support multiple virtual address spaces. The Secure and Normal (non-secure) view of virtual memory is available on processors that implement Trustzone (security extensions). The Hypervisor view of memory is available on processors that implement the virtualization extensions.

When specifying a virtual address you must specify which of these address spaces you wish to use. In the DS-5 debugger this is done using an address prefix.

For example, the virtual address 0x8000 can be targeted at any of the address spaces on a processor:

  • S:0x8000 (Secure World)
  • N:0x8000 (Normal World)
  • H:0x8000 (Hypervisor)

When DS-5 Debugger loads symbols (and where multiple address spaces exist) it needs to know which address space to associate the symbols with. This is because a given address (e.g. 0x8000) may exist in all three virtual address spaces, but be used/mapped differently be each.

If the target is stopped when the symbols are loaded, then the debugger automatically associates the symbols with the current address space of the processor (e.g. if stopped on Normal world code then it will use the Normal world address space). If the target is running when symbols are loaded then the debugger does not know which address space to associate symbols with and produces the error above.

Therefore one solution to the above error is to stop the target before loading symbols. Another solution is to explicitly tell the debugger which address space to associate symbols with. Commands that load symbols, such as file and add-symbol-file take an optional offset argument. The offset argument can contain an address space. The way to load symbols into a specific address space is to use an offset of zero with the correct address space indicated, for example:

file vmlinux N:0

The command above will load the symbols for the Linux kernel and associate it with the Normal world address space.

 
Anonymous
Tools, Software and IDEs blog
  • Python on Arm: 2025 Update

    Diego Russo
    Diego Russo
    Python powers applications across Machine Learning (ML), automation, data science, DevOps, web development, and developer tooling.
    • August 21, 2025
  • Product update: Arm Development Studio 2025.0 now available

    Stephen Theobald
    Stephen Theobald
    Arm Development Studio 2025.0 now available with Arm Toolchain for Embedded Professional.
    • July 18, 2025
  • GCC 15: Continuously Improving

    Tamar Christina
    Tamar Christina
    GCC 15 brings major Arm optimizations: enhanced vectorization, FP8 support, Neoverse tuning, and 3–5% performance gains on SPEC CPU 2017.
    • June 26, 2025