]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Handle DW_CFA_same_value opcodes in DWARF CFI data.
authorTom Hughes <tom@compton.nu>
Wed, 8 Apr 2009 15:06:34 +0000 (15:06 +0000)
committerTom Hughes <tom@compton.nu>
Wed, 8 Apr 2009 15:06:34 +0000 (15:06 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9520

coregrind/m_debuginfo/readdwarf.c

index 2edaf809443d7b2b8e032acc3467c48e9baaf59b..3bb776ec3763110ff85f438348db0d6bae9fa7f9 100644 (file)
@@ -2912,6 +2912,17 @@ static Int run_CF_instruction ( /*MOD*/UnwindContext* ctx,
             VG_(printf)("  rci:DW_CFA_undefined\n");
          break;
 
+      case DW_CFA_same_value:
+         reg = read_leb128( &instr[i], &nleb, 0);
+         i += nleb;
+         if (reg < 0 || reg >= N_CFI_REGS) 
+            return 0; /* fail */
+         ctx->reg[reg].tag = RR_Same;
+         ctx->reg[reg].arg = 0;
+         if (di->ddump_frames)
+            VG_(printf)("  rci:DW_CFA_same_value\n");
+         break;
+
       case DW_CFA_GNU_args_size:
          /* No idea what is supposed to happen.  gdb-6.3 simply
             ignores these. */