From: Julian Seward Date: Fri, 12 Jan 2007 19:21:22 +0000 (+0000) Subject: Handle DW_CFA_undefined (produced by PathScale 2.4 on amd64-linux) X-Git-Tag: svn/VALGRIND_3_3_0~427 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=20ce1d0a81fa42330f4266065b5914a04a346e83;p=thirdparty%2Fvalgrind.git Handle DW_CFA_undefined (produced by PathScale 2.4 on amd64-linux) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6510 --- 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. */