[PATCH] D59553: [LLD][ELF][DebugInfo] llvm-symbolizer shows incorrect source line info if --gc-sections used
    Alexey Lapshin via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Tue Apr  9 04:09:03 PDT 2019
    
    
  
avl added a comment.
> I think the current handling in lld is quite good, no need to special case on if (!Sym.getOutputSection()). The same problem can be reproduced for ld.bfd and gold.
> I think the right fix is to improve the heuristics used in llvm-symbolizer, rather than change lld. llvm-symbolizer may deal with executables linked by ld.bfd and gold.
But there is no way to heuristically detect this case which works generally. On some platforms image_base could start from 0. llvm-symbolizer just does not have enough information to decide whether address range correct or not. At the same time linker does have such information. So it looks correct to do that processing in linker. Linker knows that section deleted and able to set not matching address while resolving relocations pointed to this section.
Good general solution would  be to delete not used debug info.
But for present time when that information exist - using UINT_MAX64-1 is a good way to resolve ambiquity. It is better than some heuristic which does not work for all cases.
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D59553/new/
https://reviews.llvm.org/D59553
    
    
More information about the llvm-commits
mailing list