diff options
| author | Mark Wielaard <[email protected]> | 2018-05-18 00:26:56 +0200 |
|---|---|---|
| committer | Mark Wielaard <[email protected]> | 2018-05-22 15:49:22 +0200 |
| commit | a4c74cc67de22cb3208fc768989c509d6837cd77 (patch) | |
| tree | 54e0928f75a58ff4dd6cc11103daa67489e27780 /libdw/libdw_findcu.c | |
| parent | 46d5523c94b5e9c830aeba9de863e1b65b08b1df (diff) | |
libdw: Handle split dwarf debuglines.
Split DWARF .dwo files do contain a .debug_line section, but only with
the file table, there is no actual line program. Also split DWARF CU DIEs
don't have a DW_AT_stmt_list attribute. To get at the file (and dir) table
for a split unit DIE take just the files from the .debug_line section
(at offset zero). To get the full line table use the skeleton DIE (which
does have a DW_AT_stmt_list).
Signed-off-by: Mark Wielaard <[email protected]>
Diffstat (limited to 'libdw/libdw_findcu.c')
| -rw-r--r-- | libdw/libdw_findcu.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/libdw/libdw_findcu.c b/libdw/libdw_findcu.c index d6975f34..d22ddae7 100644 --- a/libdw/libdw_findcu.c +++ b/libdw/libdw_findcu.c @@ -114,6 +114,7 @@ __libdw_intern_next_unit (Dwarf *dbg, bool debug_types) newp->subdie_offset = subdie_offset; Dwarf_Abbrev_Hash_init (&newp->abbrev_hash, 41); newp->orig_abbrev_offset = newp->last_abbrev_offset = abbrev_offset; + newp->files = NULL; newp->lines = NULL; newp->locs = NULL; newp->split = (Dwarf_CU *) -1; |
