From 196f8f070d039a703dc080aa7e4173ecf59476aa Mon Sep 17 00:00:00 2001 From: Eric Pouech Date: Tue, 6 Apr 2010 22:28:24 +0200 Subject: [PATCH] dbghelp: Added support for DW_CFA_GNU_args_size. --- dlls/dbghelp/dwarf.c | 8 ++++++++ dlls/dbghelp/dwarf.h | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/dlls/dbghelp/dwarf.c b/dlls/dbghelp/dwarf.c index 41e23974ea7..4be0f6a0952 100644 --- a/dlls/dbghelp/dwarf.c +++ b/dlls/dbghelp/dwarf.c @@ -2672,6 +2672,14 @@ static void execute_cfa_instructions(dwarf2_traverse_context_t* ctx, ctx->data += len; break; } + case DW_CFA_GNU_args_size: + /* FIXME: should check that GCC is the compiler for this CU */ + { + ULONG_PTR args = dwarf2_leb128_as_unsigned(ctx); + TRACE("%lx: DW_CFA_GNU_args_size %lu\n", info->ip, args); + /* ignored */ + break; + } default: FIXME("%lx: unknown CFA opcode %02x\n", info->ip, op); break; diff --git a/dlls/dbghelp/dwarf.h b/dlls/dbghelp/dwarf.h index 2a01c1bbd60..23493d688ee 100644 --- a/dlls/dbghelp/dwarf.h +++ b/dlls/dbghelp/dwarf.h @@ -449,6 +449,11 @@ enum dwarf_call_frame_info DW_CFA_val_offset = 0x14, DW_CFA_val_offset_sf = 0x15, DW_CFA_val_expression = 0x16, + /* GNU extensions */ + DW_CFA_GNU_window_save = 0x2d, + DW_CFA_GNU_args_size = 0x2e, + DW_CFA_GNU_negative_offset_extended = 0x2f, + }; #define DW_EH_PE_native 0x00