Page MenuHomeFreeBSD

Avoid .debug_str lookups.
ClosedPublic

Authored by markj on Jun 25 2019, 4:24 PM.

Details

Summary

libdwarf caches a string table handle, use that instead. This provides
a noticeable speedup when iterating through DIEs, since we would
otherwise do a linear search of all of the DWARF sections looking for
".debug_str" using strcmp().

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

Presumably _dwarf_strtab_init is guaranteed to be called?

Presumably _dwarf_strtab_init is guaranteed to be called?

The only way it won't be called is if an earlier error occurs during initialization. If there is no string table, then the assertion in the removed code would fail.

This revision is now accepted and ready to land.Jun 25 2019, 7:58 PM