From d3d43abbe5be09eea0c283ce38b20a2f56dd6bf0 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Wed, 8 Apr 2009 15:06:34 +0000 Subject: [PATCH] Handle DW_CFA_same_value opcodes in DWARF CFI data. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9520 --- coregrind/m_debuginfo/readdwarf.c | 11 +++++++++++ 1 file changed, 11 insertions(+) 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. */ -- 2.47.3