From: Julian Seward Date: Sun, 15 May 2005 17:14:28 +0000 (+0000) Subject: CFI reader: handle DW_CFA_def_cfa_offset_sf -- FC4 needs it X-Git-Tag: svn/VALGRIND_3_0_0~597 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4ee2e0777544f2d5b011049fc2c0feb30836be19;p=thirdparty%2Fvalgrind.git CFI reader: handle DW_CFA_def_cfa_offset_sf -- FC4 needs it git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3721 --- diff --git a/coregrind/vg_dwarf.c b/coregrind/vg_dwarf.c index 1f5fa3b582..438f414b6e 100644 --- a/coregrind/vg_dwarf.c +++ b/coregrind/vg_dwarf.c @@ -957,6 +957,7 @@ enum dwarf_cfa_secondary_ops DW_CFA_def_cfa_register = 0x0d, DW_CFA_def_cfa_offset = 0x0e, DW_CFA_offset_extended_sf = 0x11, /* DWARF3 only */ + DW_CFA_def_cfa_offset_sf = 0x13, /* DWARF3 only */ DW_CFA_lo_user = 0x1c, DW_CFA_GNU_args_size = 0x2e, DW_CFA_hi_user = 0x3f @@ -1458,6 +1459,12 @@ static Int run_CF_instruction ( /*MOD*/UnwindContext* ctx, ctx->cfa_offset = off; break; + case DW_CFA_def_cfa_offset_sf: + off = read_leb128( &instr[i], &nleb, 1); + i += nleb; + ctx->cfa_offset = off * ctx->data_a_f; + break; + case DW_CFA_GNU_args_size: /* No idea what is supposed to happen. gdb-6.3 simply ignores these. */