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)?
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.
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.
You can use the -replace_path option multiple times. But no wildcards, regexp, AFAIK.
You can multiple-use the -replace path option.
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.
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.