|
From: <sv...@va...> - 2005-05-15 17:14:52
|
Author: sewardj
Date: 2005-05-15 18:14:28 +0100 (Sun, 15 May 2005)
New Revision: 3721
Modified:
trunk/coregrind/vg_dwarf.c
Log:
CFI reader: handle DW_CFA_def_cfa_offset_sf -- FC4 needs it
Modified: trunk/coregrind/vg_dwarf.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/vg_dwarf.c 2005-05-15 16:22:58 UTC (rev 3720)
+++ trunk/coregrind/vg_dwarf.c 2005-05-15 17:14:28 UTC (rev 3721)
@@ -957,6 +957,7 @@
DW_CFA_def_cfa_register =3D 0x0d,
DW_CFA_def_cfa_offset =3D 0x0e,
DW_CFA_offset_extended_sf =3D 0x11, /* DWARF3 only */
+ DW_CFA_def_cfa_offset_sf =3D 0x13, /* DWARF3 only */
DW_CFA_lo_user =3D 0x1c,
DW_CFA_GNU_args_size =3D 0x2e,
DW_CFA_hi_user =3D 0x3f
@@ -1458,6 +1459,12 @@
ctx->cfa_offset =3D off;
break;
=20
+ case DW_CFA_def_cfa_offset_sf:
+ off =3D read_leb128( &instr[i], &nleb, 1);
+ i +=3D nleb;
+ ctx->cfa_offset =3D 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. */
|