[PATCH] [DbgHelp]: when the CU is compiled with GCC, deal with some GCC extensions
Eric Pouech
eric.pouech at orange.fr
Sun Jun 28 07:04:27 CDT 2009
A+
---
dlls/dbghelp/dwarf.c | 4 +++-
dlls/dbghelp/dwarf.h | 12 ++++++++++++
2 files changed, 15 insertions(+), 1 deletions(-)
diff --git a/dlls/dbghelp/dwarf.c b/dlls/dbghelp/dwarf.c
index 82e836f..7843e67 100644
--- a/dlls/dbghelp/dwarf.c
+++ b/dlls/dbghelp/dwarf.c
@@ -781,7 +781,9 @@ compute_location(dwarf2_traverse_context_t* ctx, struct location* loc,
}
break;
default:
- FIXME("Unhandled attr op: %x\n", op);
+ if (op < DW_OP_lo_user) /* as DW_OP_hi_user is 0xFF, we don't need to test against it */
+ FIXME("Unhandled attr op: %x\n", op);
+ /* FIXME else unhandled extension */
return loc_err_internal;
}
}
diff --git a/dlls/dbghelp/dwarf.h b/dlls/dbghelp/dwarf.h
index e7a0a7e..a590df2 100644
--- a/dlls/dbghelp/dwarf.h
+++ b/dlls/dbghelp/dwarf.h
@@ -376,6 +376,18 @@ typedef enum dwarf_operation_e
DW_OP_call2 = 0x98,
DW_OP_call4 = 0x99,
DW_OP_call_ref = 0x9a,
+ DW_OP_form_tls_address = 0x9b,
+ DW_OP_call_frame_cfa = 0x9c,
+ DW_OP_bit_piece = 0x9d,
+
+ /* Implementation defined extensions */
+ DW_OP_lo_user = 0xe0,
+ DW_OP_hi_user = 0xff,
+
+ /* GNU extensions */
+ DW_OP_GNU_push_tls_address = 0xe0,
+ DW_OP_GNU_uninit = 0xf0,
+ DW_OP_GNU_encoded_addr = 0xf1,
} dwarf_operation_t;
enum dwarf_calling_convention
More information about the wine-patches
mailing list