]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Merge r6510 (Handle DW_CFA_undefined)
authorJulian Seward <jseward@acm.org>
Fri, 12 Jan 2007 22:11:45 +0000 (22:11 +0000)
committerJulian Seward <jseward@acm.org>
Fri, 12 Jan 2007 22:11:45 +0000 (22:11 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/branches/VALGRIND_3_2_BRANCH@6513

coregrind/m_debuginfo/readdwarf.c

index fcd2f771f389bbd0e79ee28856cd3f4d8ff4cdcb..9288df0b5c68ccbd7d7d06687a6bcc513d96943a 100644 (file)
@@ -2224,6 +2224,16 @@ static Int run_CF_instruction ( /*MOD*/UnwindContext* ctx,
          ctx->cfa_offset = off * ctx->data_a_f;
          break;
 
+      case DW_CFA_undefined:
+         reg = read_leb128( &instr[i], &nleb, 0);
+         i += nleb;
+         if (reg < 0 || reg >= N_CFI_REGS) 
+            return 0; /* fail */
+         ctx->reg[reg].tag = RR_Undef;
+         ctx->reg[reg].coff = 0;
+         ctx->reg[reg].reg = 0;
+         break;
+
       case DW_CFA_GNU_args_size:
          /* No idea what is supposed to happen.  gdb-6.3 simply
             ignores these. */