[lldb-dev] LTO debug info

Greg Clayton via lldb-dev lldb-dev at lists.llvm.org
Mon Apr 25 16:59:38 PDT 2016


> On Apr 25, 2016, at 1:37 PM, Philippe Lavoie via lldb-dev <lldb-dev at lists.llvm.org> wrote:
> 
> Hello,
> 
> We noticed an issue with dwarf parsing when debugging a large application compiled with LTO.
> 
> Since an LTO application's debug info can have inter-compile-unit references, (for example: a type defined in one compile-unit and used in another) we noticed that the "m_type_index" vector in SymbolFileDWARF can get corrupted. This is because many index structures in SymbolFileDWARF are generated in parallel.
> 
> Is is a bug or is it expected to be the compiler's/linker's job to generate self-contained DWARF data without inter-CU references?
> 
> -Philippe

TEach SymbolFileDWARF should generate its own accelerator tables in a self contained way. No SymbolFileDWARF should be adding references to their accelerator maps that actually refer to DIEs from another SymbolFileDWARF. We might need to look at the indexing function that make sure if they see and DW_FORM_ref_addr attributes, that they don't add any of them to their index. That seems like the bug?

Greg



More information about the lldb-dev mailing list