intermediate_layer.py reports paths inconsistently if 'remove_workspace' is false
In this case, 'workspace' is ignored, and it's expected that the .elf was built from the source tree in the 'local_workspace', so that paths from the DWARF can be found by ctags locally.
But then:
- coverage for functions with C source in the DWARF is reported using the absolute path from the DWARF.
- coverage for functions with no C source is reported using relative paths with the local_workspace trimmed.
It's possible for the same function, same location to be reported twice (on absolute and relative paths) if it appears multiple times in the objdump, with source and without source. I have a .elf that does this (don't ask me why).
The workaround is to set remove_workspace = true and provide the same path for both workspaces. In this case, coverage is always reported on the relative path, and each function is reported once.