[Lldb-commits] [PATCH] D42563: [lldb] attempt to fix DIERef::GetUID
Alexander Shaposhnikov via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Fri Jan 26 10:25:13 PST 2018
alexshap added a comment.
@tberghammer
> ELF specific as nothing really ties SymbolFileDWARF with the ELF format
the only reason why it's currently guarded to ELF is the fact that
for Mach-O uuid also encodes something and i didn't want to change that (see the comment in the old version of the code)
(although i don't know if it's up to date).
> Do you know who is using the partially incorrect value returned from here?
yes, i do. I mentioned in the summary one example:
> For example, inside SymbolFileDWARF::ParseVariablesForContext there is a call
> DWARFDIE function_die = info->GetDIE(DIERef(sc.function->GetID(), this)) - and because of the "broken" cu_offset (inside DIERef) the method GetDIE returns an invalid DWARFDIE.
If necessary, i can provide more details.
> One possible idea what can provide a nice fix is to change SymbolFileDWARF::GetID() to return (DW_INVALID_OFFSET << 32) and then treat that value as a special case indicating that the compile unit offset >is invalid and we should look for the DIE based on the die_offset part of the ID only
yeah, i thought about this as well, one thing that makes me worry - is die_offset sufficient to uniquely identify DIE ? otherwise dropping cu_offset might lead to similar hard-to-debug/hard-to-fix bugs/collisions
Repository:
rL LLVM
https://reviews.llvm.org/D42563
More information about the lldb-commits
mailing list