dbghelp: Added support for DW_CFA_GNU_args_size.
authorEric Pouech <eric.pouech@orange.fr>
Tue, 6 Apr 2010 20:28:24 +0000 (22:28 +0200)
committerAlexandre Julliard <julliard@winehq.org>
Wed, 7 Apr 2010 11:50:35 +0000 (13:50 +0200)
dlls/dbghelp/dwarf.c
dlls/dbghelp/dwarf.h

index 41e23974ea7725192c0b4baa71e390627dd733d2..4be0f6a095226e9b3dfe570ea5bb137574ba5e0f 100644 (file)
@@ -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;
index 2a01c1bbd6069ead71474b73797d9596efafb01c..23493d688eeff4bcfbaaeef011fe2ddb985a4784 100644 (file)
@@ -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