Home
  • Products
  • Solutions
  • Support
  • Company
  • Products
  • Solutions
  • Support
  • Company
Community Hardware/Software Co-Development, Verification… Path mapping for C Firmware source files when debugging

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 58
  • Views 22094
  • Members are here 0
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

Path mapping for C Firmware source files when debugging

29erpete
29erpete over 4 years ago

Hi,

i am compiling firmware under Windows transfer the binaries and the sources to Linux to simulate/debug there. The problem is that the paths in the DWARF debug info of the .elf file are the absolute Windows paths as set by the compiler so they are useless under Linux. Is it possible to configure mappings of these paths to the Linux paths when simulating/debugging like with e.g. GDB (https://sourceware.org/gdb/current/onlinedocs/gdb/Source-Path.html#index-set-substitute_002dpath)?

thx,

Peter

  • Cancel
  • Nils
    Nils over 4 years ago

    Hi Peter, 

    sure, Indago ESWD has a -replace_path option to do this.
    you need to specify a source => destinaion mapping as in  

    -replace_path 'c:\mydir\c_src' '=>' '/usr/project/c_src'

    See the ESWD UserGuide for more info.

    regards,
    Nils

    • Cancel
    • Up 0 Down
    • Cancel
  • 29erpete
    29erpete over 4 years ago in reply to Nils

    Thank you for the quick response.

    As i understand the manual, only one mapping can be defined and it is not possible to use wildcards/regular expressions? In our case there are sources from different paths and the paths can differ from build to build so these features would help a lot.

    • Cancel
    • Up 0 Down
    • Cancel
  • Nils
    Nils over 4 years ago in reply to 29erpete

    You can use the -replace_path option multiple times. But no wildcards, regexp, AFAIK.

    • Cancel
    • Up 0 Down
    • Cancel
  • Will123321
    Will123321 over 3 years ago

    You can multiple-use the -replace path option.

    • Cancel
    • Up 0 Down
    • Cancel
  • 29erpete
    29erpete over 3 years ago in reply to Will123321

    Thanks for the reply but as stated previously the paths on the Windows side differ from build to build so without wildcards/regex's this does not work for me.

    • Cancel
    • Up 0 Down
    • Cancel
  • rvphilip
    rvphilip over 2 years ago

    The PX4 source code is stored on Github in the px4/firmware repository. I would recommend that you fork this repository and then clone the source to your local computer. The path is stored in the .debug_str section of the binary, as a NUL-terminated string. You can find the section offset from e.g. readelf -S, and edit the string with emacs. Or write a program to do that. If you are still unable to get it right, I would recommend you try an Enterprise Application Development Services who will get it done for you quickly with very little expense.

    • Cancel
    • Up -1 Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2023 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information