On Tue, Sep 11, 2012 at 10:16 PM, Jakub Jelinek <ja...@redhat.com> wrote: > On Tue, Sep 11, 2012 at 03:55:04PM -0700, Ian Lance Taylor wrote: >> +/* The DWARF abbreviations for a compilation unit. This structure >> + only exists while reading the compilation unit. Most DWARF readers >> + seem to a hash table to map abbrev ID's to abbrev entries. >> + However, we primarily care about GCC, and GCC simply issues ID's in >> + numerical order starting at 1. So we simply keep a sorted vector, >> + and try to just look up the code. */ > > As soon as you run dwz on it, the abbrevs won't be in numerical order, > and even GCC really should be changed to sort the abbrevs by decreasing > use count if there are more than 127 abbrevs (special casing the base types > that are used for typed DWARF stack).
OK. Still, the current code should work correctly. > The patch also doesn't handle DW_TAG_imported_unit/DW_TAG_partial_unit, > which is a show stopper if dwz is used (and > DW_FORM_GNU_strp_alt/DW_FORM_GNU_ref_alt isn't handled properly). > > BTW, the library doesn't seem to implement what gdb does, in particular > improved support for tail calls. In gdb that was (at least); > 2011-10-09 Jan Kratochvil <jan.kratoch...@redhat.com> > > Protect entry values against self tail calls. > ... > > 2011-10-09 Jan Kratochvil <jan.kratoch...@redhat.com> > > Recognize virtual tail call frames. Yes. I think these are issues that can be addressed after the initial version of the library is approved and committed. Ian