|
From: <sv...@va...> - 2007-01-12 22:11:47
|
Author: sewardj
Date: 2007-01-12 22:11:45 +0000 (Fri, 12 Jan 2007)
New Revision: 6513
Log:
Merge r6510 (Handle DW_CFA_undefined)
Modified:
branches/VALGRIND_3_2_BRANCH/coregrind/m_debuginfo/readdwarf.c
Modified: branches/VALGRIND_3_2_BRANCH/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
--- branches/VALGRIND_3_2_BRANCH/coregrind/m_debuginfo/readdwarf.c 2007-0=
1-12 22:09:57 UTC (rev 6512)
+++ branches/VALGRIND_3_2_BRANCH/coregrind/m_debuginfo/readdwarf.c 2007-0=
1-12 22:11:45 UTC (rev 6513)
@@ -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. */
|