Eric Pouech : dbghelp/dwarf: Add support for DW_TAG_imported_unit.
Alexandre Julliard
julliard at winehq.org
Mon Sep 27 15:21:43 CDT 2021
Module: wine
Branch: master
Commit: c2d1d7653170402f0d2f2e45d875b10113b7c958
URL: https://source.winehq.org/git/wine.git/?a=commit;h=c2d1d7653170402f0d2f2e45d875b10113b7c958
Author: Eric Pouech <eric.pouech at gmail.com>
Date: Sun Sep 26 14:46:43 2021 +0200
dbghelp/dwarf: Add support for DW_TAG_imported_unit.
Signed-off-by: Eric Pouech <eric.pouech at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
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-cvs
mailing list