From 9cb840c72351fb29a10a58a15bab7cf89f5777ac Mon Sep 17 00:00:00 2001 From: Jeremy <51220084+jeremy-rifkin@users.noreply.github.com> Date: Fri, 15 Sep 2023 16:47:01 -0400 Subject: [PATCH] Unconditionally walk DW_TAG_namespace --- src/symbols/symbols_with_libdwarf.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/symbols/symbols_with_libdwarf.cpp b/src/symbols/symbols_with_libdwarf.cpp index afd0e0d..36bd3a0 100644 --- a/src/symbols/symbols_with_libdwarf.cpp +++ b/src/symbols/symbols_with_libdwarf.cpp @@ -814,7 +814,7 @@ namespace cpptrace { ); } - if(!pc_in_die(dbg, die.get(), dwversion, pc)) { + if(!(die.get_tag() == DW_TAG_namespace || pc_in_die(dbg, die.get(), dwversion, pc))) { if(dump_dwarf) { fprintf(stderr, "pc not in die\n"); } @@ -822,7 +822,8 @@ namespace cpptrace { if(trace_dwarf) { fprintf( stderr, - "pc in die %08llx %s\n", + "%s %08llx %s\n", + die.get_tag() == DW_TAG_namespace ? "pc maybe in die (namespace)" : "pc in die", (unsigned long long) die.get_global_offset(), die.get_tag_name() );