dbghelp: Improve dwarf support
Alistair Leslie-Hughes
leslie_alistair at hotmail.com
Mon Mar 17 00:01:25 CDT 2014
Hi,
This corrects a few FIXME's when attempting to install VS2008.
Changelog:
dbghelp: Improve dwarf support
Best Regards
Alistair Leslie-Hughes
-------------- next part --------------
>From 883b6afb2e16699475f68b43b91be304e384a042 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date: Fri, 14 Mar 2014 16:24:10 +1100
Subject: [PATCH] Support support for DW_TAG_pointer_type
DW_TAG_subroutine_type DW_TAG_pointer_type DW_TAG_array_type
To: wine-patches <wine-patches at winehq.org>
---
dlls/dbghelp/dwarf.c | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/dlls/dbghelp/dwarf.c b/dlls/dbghelp/dwarf.c
index 159f9bb..e7c36b0 100644
--- a/dlls/dbghelp/dwarf.c
+++ b/dlls/dbghelp/dwarf.c
@@ -1440,6 +1440,9 @@ static struct symt* dwarf2_parse_udt_type(dwarf2_parse_context_t* ctx,
switch (child->abbrev->tag)
{
+ case DW_TAG_array_type:
+ dwarf2_parse_array_type(ctx, di);
+ break;
case DW_TAG_member:
/* FIXME: should I follow the sibling stuff ?? */
dwarf2_parse_udt_member(ctx, child, (struct symt_udt*)di->symt);
@@ -1710,7 +1713,10 @@ static void dwarf2_parse_subprogram_label(dwarf2_subprogram_t* subpgm,
static void dwarf2_parse_subprogram_block(dwarf2_subprogram_t* subpgm,
struct symt_block* parent_block,
- dwarf2_debug_info_t* di);
+ dwarf2_debug_info_t* di);
+
+static struct symt* dwarf2_parse_subroutine_type(dwarf2_parse_context_t* ctx,
+ dwarf2_debug_info_t* di);
static void dwarf2_parse_inlined_subroutine(dwarf2_subprogram_t* subpgm,
struct symt_block* parent_block,
@@ -1801,6 +1807,12 @@ static void dwarf2_parse_subprogram_block(dwarf2_subprogram_t* subpgm,
case DW_TAG_variable:
dwarf2_parse_variable(subpgm, block, child);
break;
+ case DW_TAG_pointer_type:
+ dwarf2_parse_pointer_type(subpgm->ctx, di);
+ break;
+ case DW_TAG_subroutine_type:
+ dwarf2_parse_subroutine_type(subpgm->ctx, di);
+ break;
case DW_TAG_lexical_block:
dwarf2_parse_subprogram_block(subpgm, block, child);
break;
@@ -1930,6 +1942,9 @@ static struct symt* dwarf2_parse_subprogram(dwarf2_parse_context_t* ctx,
case DW_TAG_inlined_subroutine:
dwarf2_parse_inlined_subroutine(&subpgm, NULL, child);
break;
+ case DW_TAG_pointer_type:
+ dwarf2_parse_pointer_type(subpgm.ctx, di);
+ break;
case DW_TAG_subprogram:
/* FIXME: likely a declaration (to be checked)
* skip it for now
--
1.8.3.2
More information about the wine-patches
mailing list