From: Julian Seward Date: Fri, 12 Jan 2007 22:11:45 +0000 (+0000) Subject: Merge r6510 (Handle DW_CFA_undefined) X-Git-Tag: svn/VALGRIND_3_2_2~13 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1fdc21e7015e339a617223ad8893a97b1c5b75f4;p=thirdparty%2Fvalgrind.git Merge r6510 (Handle DW_CFA_undefined) git-svn-id: svn://svn.valgrind.org/valgrind/branches/VALGRIND_3_2_BRANCH@6513 --- diff --git a/coregrind/m_debuginfo/readdwarf.c b/coregrind/m_debuginfo/readdwarf.c index fcd2f771f3..9288df0b5c 100644 --- a/coregrind/m_debuginfo/readdwarf.c +++ b/coregrind/m_debuginfo/readdwarf.c @@ -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. */