This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

dtsl_config_script.py error when starting debug session

Hello all,

Everything was working fine with Arm DS 2021.0.

I have just installed Arm DS 2021.1.

DS 2021.1 will load the workspace / project and build without any problems, but I cannot start a debug session. The error reported is:

Script C:\Users\XXXXXXX\Development Studio Workspace\.metadata\.plugins\com.arm.debug.cmsis\DS-MDK\SAMA5_DFP_ATSAMA5D27\dtsl_config_script.py does not provide configuration DtslScript_DebugAndOnChipTrace.

Any ideas?

Regards,

Mark.

Parents
  • Hi again Mark

    Thanks for the screen shot.  The debugger cannot find any source code corresponding to that address.

    Some reasons why that might happen are:

    1) There is no debug information in the .axf for that address.  Please check that you are compiling with "-g" to generate debug information, and the debug information is not being stripped out accidentally as part of the build.  
    Which compiler are you using, e.g. Arm Compiler 6 (armlang) or GCC?  
    You can check that the ELF executable contains DWARF debug information corresponding to those addresses with AC6's fromelf or GCC's objdump tools.
    e.g. fromelf -g zImage.axf
    :
      000640: Header:
        size 0x216 bytes, dwarf version 4, abbrevp 0x21, address size 4
      00064b: 1  = 0x11 (DW_TAG_compile_unit)
      00064c:   DW_AT_stmt_list 0x132
      000650:   DW_AT_low_pc 0xc0000000
      000654:   DW_AT_high_pc 0xc0000230
      000658:   DW_AT_name ..\startup.S
      000665:   DW_AT_comp_dir C:\Users\xxxx\Development Studio Workspace 2021.1\my_project\Debug  0006c3:   DW_AT_producer Component: ARM Compiler 6.16 Tool: armclang [5dfeb700]
      0006fa:   DW_AT_language 0x8001
      0006fc:   2  = 0xa (DW_TAG_label)
      0006fd:     DW_AT_name Vectors
      000705:     DW_AT_decl_file 0x1
      000709:     DW_AT_decl_line 0xa
      00070d:     DW_AT_low_pc 0xc0000000
    :

    2) The code has been relocated from one area in memory to another, but the addresses in the debug information correspond to the first initial area, not the second subsequent destination.  The debug addresses can be adjusted by loading the debug symbols with an offset, e.g.
    file "D:\...\sama5_bare\Debug\zImage.axf" 0x20008000

    3) Is this a Linux image?  If so, debug symbols would normally be loaded from the file "vmlinux".  Also, if the code has started executing then perhaps the MMU is not yet enabled, so an offset is needed to handle the difference between physical and virtual addresses.  The Arm Debugger provides special features for debugging the Linux kernel, for debugging pre-MMU (with an offset) and post-MMU (without an offset).  See 
    https://community.arm.com/developer/tools-software/tools/b/tools-software-ides-blog/posts/porting-linux-made-easy-with-ds-5 (older, for Armv7-A), or
    community.arm.com/.../debugging-the-armv8-a-linux-kernel-with-ds-5 (more recent, for Armv8-A), or
    https://developer.arm.com/documentation/102021/2021-1/Debug-applications-on-a-heterogenous-system/Debug-the-Linux-Application-and-Kernel/Create-the-Linux-kernel-debug-project (tutorial for iMX7)


    Stephen

Reply
  • Hi again Mark

    Thanks for the screen shot.  The debugger cannot find any source code corresponding to that address.

    Some reasons why that might happen are:

    1) There is no debug information in the .axf for that address.  Please check that you are compiling with "-g" to generate debug information, and the debug information is not being stripped out accidentally as part of the build.  
    Which compiler are you using, e.g. Arm Compiler 6 (armlang) or GCC?  
    You can check that the ELF executable contains DWARF debug information corresponding to those addresses with AC6's fromelf or GCC's objdump tools.
    e.g. fromelf -g zImage.axf
    :
      000640: Header:
        size 0x216 bytes, dwarf version 4, abbrevp 0x21, address size 4
      00064b: 1  = 0x11 (DW_TAG_compile_unit)
      00064c:   DW_AT_stmt_list 0x132
      000650:   DW_AT_low_pc 0xc0000000
      000654:   DW_AT_high_pc 0xc0000230
      000658:   DW_AT_name ..\startup.S
      000665:   DW_AT_comp_dir C:\Users\xxxx\Development Studio Workspace 2021.1\my_project\Debug  0006c3:   DW_AT_producer Component: ARM Compiler 6.16 Tool: armclang [5dfeb700]
      0006fa:   DW_AT_language 0x8001
      0006fc:   2  = 0xa (DW_TAG_label)
      0006fd:     DW_AT_name Vectors
      000705:     DW_AT_decl_file 0x1
      000709:     DW_AT_decl_line 0xa
      00070d:     DW_AT_low_pc 0xc0000000
    :

    2) The code has been relocated from one area in memory to another, but the addresses in the debug information correspond to the first initial area, not the second subsequent destination.  The debug addresses can be adjusted by loading the debug symbols with an offset, e.g.
    file "D:\...\sama5_bare\Debug\zImage.axf" 0x20008000

    3) Is this a Linux image?  If so, debug symbols would normally be loaded from the file "vmlinux".  Also, if the code has started executing then perhaps the MMU is not yet enabled, so an offset is needed to handle the difference between physical and virtual addresses.  The Arm Debugger provides special features for debugging the Linux kernel, for debugging pre-MMU (with an offset) and post-MMU (without an offset).  See 
    https://community.arm.com/developer/tools-software/tools/b/tools-software-ides-blog/posts/porting-linux-made-easy-with-ds-5 (older, for Armv7-A), or
    community.arm.com/.../debugging-the-armv8-a-linux-kernel-with-ds-5 (more recent, for Armv8-A), or
    https://developer.arm.com/documentation/102021/2021-1/Debug-applications-on-a-heterogenous-system/Debug-the-Linux-Application-and-Kernel/Create-the-Linux-kernel-debug-project (tutorial for iMX7)


    Stephen

Children