dblaikie added a comment.

In D97786#2972153 <https://reviews.llvm.org/D97786#2972153>, @pfaffe wrote:

> This change breaks all existing uses of relative comp_dirs that don't 
> accidentally make all of them relative to the executable's directory already.
>
> It's easy to construct broken use cases: Consider compiling your program like 
> `clang -g ./src/src.c -gsplit-dwarf -o ./out/src 
> -fdebug-prefix-map=$(pwd)=.`. This will create `src.dwo` in $(pwd) and set 
> the DW_AT_comp_dir of `src` to ".";  the change makes it impossible to load 
> `src.dwo`.
>
> The problem is easy to see in this slightly constructed example and could be 
> fixed here by moving around the dwo files or setting the prefix to '..' to 
> make it point to the executable. But that's not always possible! What if we 
> have a static library that gets linked into multiple executables in different 
> locations? What do we set comp_dir to in the library objects?
>
> The change also introduces different behavior for loading dwos vs. source 
> files. The latter will still be loaded relative to the CWD.

This doesn't solve all use cases/it's not a terribly general purpose situation 
- using -fdebug-prefix-map/-fdebug-compilation-dir requires knowledge of these 
limitations/how to use these features together. (though I agree that changes in 
this area should apply to all relative comp_dir lookups - source and dwo files 
alike, rather than handling one group differently from the other when they're 
all defined as comp_dir relative)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D97786/new/

https://reviews.llvm.org/D97786

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to