From: Tom Hughes Date: Wed, 8 Apr 2009 15:06:34 +0000 (+0000) Subject: Handle DW_CFA_same_value opcodes in DWARF CFI data. X-Git-Tag: svn/VALGRIND_3_5_0~824 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d3d43abbe5be09eea0c283ce38b20a2f56dd6bf0;p=thirdparty%2Fvalgrind.git Handle DW_CFA_same_value opcodes in DWARF CFI data. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9520 --- diff --git a/coregrind/m_debuginfo/readdwarf.c b/coregrind/m_debuginfo/readdwarf.c index 2edaf80944..3bb776ec37 100644 --- a/coregrind/m_debuginfo/readdwarf.c +++ b/coregrind/m_debuginfo/readdwarf.c @@ -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. */