[PATCH 2/2] libdw: Reduce size of struct Dwarf_Abbrev.

2017-12-26 Thread Mark Wielaard
If we don't cache the attrcnt and use bitfields for the has_children and code we can reduce the size of struct Dwarf Abbrev from 32 to 24 bytes on 64bit architectures and from 28 to 20 bytes on 32bit arches. Signed-off-by: Mark Wielaard --- libdw/ChangeLog | 7 +++ libdw/dwarf_geta

Simpler abbrev parsing using less memory

2017-12-26 Thread Mark Wielaard
Hi, When we added bounds checking to almost all data reading functions (commit 7a05347 libdw: Add get_uleb128 and get_sleb128 bounds checking) we also added extra checks to the abbrev reading. But since we didn't really have bounds for the "raw" Dwarf_Abbrev reading functions we just "guessed" the

[PATCH 1/2] libdw: New get_uleb128_unchecked to use with already checked Dwarf_Abbrev.

2017-12-26 Thread Mark Wielaard
When creating a Dwarf_Abbrev in dwarf_getabbrev (__libdw_getabbrev) we already check it is fully readable from the .debug_abbrev section. So whenever we reread it later using the attrp pointer we don't have to check it again. Introduce get_uleb128_unchecked to use for ulebs we know are safe to read