[PATCH 03/12] dbghelp/dwarf: added support for DW_TAG_imported_unit
Eric Pouech
eric.pouech at gmail.com
Sun Sep 26 07:46:43 CDT 2021
Signed-off-by: Eric Pouech <eric.pouech at gmail.com>
---
dlls/dbghelp/dwarf.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/dlls/dbghelp/dwarf.c b/dlls/dbghelp/dwarf.c
index 13423c93515..785f6651f11 100644
--- a/dlls/dbghelp/dwarf.c
+++ b/dlls/dbghelp/dwarf.c
@@ -2305,6 +2305,24 @@ static void dwarf2_parse_namespace(dwarf2_debug_info_t* di)
}
}
+static void dwarf2_parse_imported_unit(dwarf2_debug_info_t* di)
+{
+ struct attribute imp;
+
+ if (di->symt) return;
+
+ TRACE("%s\n", dwarf2_debug_di(di));
+
+ if (dwarf2_find_attribute(di, DW_AT_import, &imp))
+ {
+ dwarf2_debug_info_t* jmp = dwarf2_jump_to_debug_info(&imp);
+ if (jmp) di->symt = jmp->symt;
+ else FIXME("Couldn't load imported CU\n");
+ }
+ else
+ FIXME("Couldn't find import attribute\n");
+}
+
static void dwarf2_load_one_entry(dwarf2_debug_info_t* di)
{
switch (di->abbrev->tag)
@@ -2373,6 +2391,9 @@ static void dwarf2_load_one_entry(dwarf2_debug_info_t* di)
case DW_TAG_subrange_type:
dwarf2_parse_subrange_type(di);
break;
+ case DW_TAG_imported_unit:
+ dwarf2_parse_imported_unit(di);
+ break;
/* silence a couple of C++ defines */
case DW_TAG_imported_module:
case DW_TAG_imported_declaration:
More information about the wine-devel
mailing list