|
From: <sv...@va...> - 2007-01-12 19:21:24
|
Author: sewardj
Date: 2007-01-12 19:21:22 +0000 (Fri, 12 Jan 2007)
New Revision: 6510
Log:
Handle DW_CFA_undefined (produced by PathScale 2.4 on amd64-linux)
Modified:
trunk/coregrind/m_debuginfo/readdwarf.c
Modified: trunk/coregrind/m_debuginfo/readdwarf.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/m_debuginfo/readdwarf.c 2007-01-12 19:03:19 UTC (rev =
6509)
+++ trunk/coregrind/m_debuginfo/readdwarf.c 2007-01-12 19:21:22 UTC (rev =
6510)
@@ -2224,6 +2224,16 @@
ctx->cfa_offset =3D off * ctx->data_a_f;
break;
=20
+ case DW_CFA_undefined:
+ reg =3D read_leb128( &instr[i], &nleb, 0);
+ i +=3D nleb;
+ if (reg < 0 || reg >=3D N_CFI_REGS)=20
+ return 0; /* fail */
+ ctx->reg[reg].tag =3D RR_Undef;
+ ctx->reg[reg].coff =3D 0;
+ ctx->reg[reg].reg =3D 0;
+ break;
+
case DW_CFA_GNU_args_size:
/* No idea what is supposed to happen. gdb-6.3 simply
ignores these. */
|