Cortex A15 ARMDS 22.2 Breakpoints not working in C code, only in assembly?

Hello,

Any help here will be appreciated, My target is A15 running threadx code, breakpoints work fine in *.s or Assembly file but don't respond or stuck in *.c file

I am new to ARMDS interface, I did look at this discussion but didnt know where to pass the extra flag/option EL1N:0 in ARMDS 22.2

https://community.arm.com/support-forums/f/armds-forum/47140/breakpoints-not-working-in-c-code-only-in-assembly

 

Parents
  • Hi

    My name is Stephen and I work at Arm.

    The Execution Level (e.g. EL1N) that you've seen in other answers applies to Arm processors which implement the Armv8-A architecture. Your Cortex-A15 implements Armv7-A architecture, so has no ELs.

    As a first step, check that you are compiling the source files with "-g".  This adds debug information into object files to allow debug at source level.

    Check that your final linked executable contains debug information using, e.g.
    fromelf your.axf
    and confirm that it contains some debug_* sections.

    Check that the debug information is being loaded into the debugger.  For example, do you see variables appearing in the Variables view?

    Cortex-A15 implements TrustZone, and can operate in Secure or Non-secure (Normal) worlds.
    If the debugger loads debug information from the image when in Secure world, but your application runs in Normal world, then you might need to load debug information for Normal world with e.g.
    add-symbol-file your.axf N:0
    The zero here means a zero offset between the addresses given in the debug information and the actual load address of your executable.  You might need a non-zero value if e.g. your code relocates itself at run-time.

    Hope this helps

    Stephen

Reply
  • Hi

    My name is Stephen and I work at Arm.

    The Execution Level (e.g. EL1N) that you've seen in other answers applies to Arm processors which implement the Armv8-A architecture. Your Cortex-A15 implements Armv7-A architecture, so has no ELs.

    As a first step, check that you are compiling the source files with "-g".  This adds debug information into object files to allow debug at source level.

    Check that your final linked executable contains debug information using, e.g.
    fromelf your.axf
    and confirm that it contains some debug_* sections.

    Check that the debug information is being loaded into the debugger.  For example, do you see variables appearing in the Variables view?

    Cortex-A15 implements TrustZone, and can operate in Secure or Non-secure (Normal) worlds.
    If the debugger loads debug information from the image when in Secure world, but your application runs in Normal world, then you might need to load debug information for Normal world with e.g.
    add-symbol-file your.axf N:0
    The zero here means a zero offset between the addresses given in the debug information and the actual load address of your executable.  You might need a non-zero value if e.g. your code relocates itself at run-time.

    Hope this helps

    Stephen

Children