summaryrefslogtreecommitdiffstats
path: root/libdw/libdw_findcu.c
diff options
context:
space:
mode:
authorMark Wielaard <[email protected]>2018-05-18 00:26:56 +0200
committerMark Wielaard <[email protected]>2018-05-22 15:49:22 +0200
commita4c74cc67de22cb3208fc768989c509d6837cd77 (patch)
tree54e0928f75a58ff4dd6cc11103daa67489e27780 /libdw/libdw_findcu.c
parent46d5523c94b5e9c830aeba9de863e1b65b08b1df (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.c1
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;