|
From: <sv...@va...> - 2008-05-20 12:35:36
|
Author: bart
Date: 2008-05-20 13:35:39 +0100 (Tue, 20 May 2008)
New Revision: 8111
Log:
x86: Replaced mechanism for suppressing false positives on .got.plt data accesses. Instead of not instrumenting instructions in the .plt section, suppress .got.plt data accesses directly.
Modified:
branches/CROSS_COMPILATION/exp-drd/drd_main.c
Modified: branches/CROSS_COMPILATION/exp-drd/drd_main.c
===================================================================
--- branches/CROSS_COMPILATION/exp-drd/drd_main.c 2008-05-20 12:33:16 UTC (rev 8110)
+++ branches/CROSS_COMPILATION/exp-drd/drd_main.c 2008-05-20 12:35:39 UTC (rev 8111)
@@ -575,10 +575,20 @@
if (a <= avma && avma + size <= a + len)
{
#if 0
- VG_(printf)("Suppressing plt @ 0x%lx size %ld\n", avma, size);
+ VG_(printf)("Suppressing .plt @ 0x%lx size %ld\n", avma, size);
#endif
drd_start_suppression(avma, avma + size, ".plt");
}
+
+ avma = VG_(seginfo_get_gotplt_avma)(di);
+ size = VG_(seginfo_get_gotplt_size)(di);
+ if (a <= avma && avma + size <= a + len)
+ {
+#if 0
+ VG_(printf)("Suppressing .got.plt @ 0x%lx size %ld\n", avma, size);
+#endif
+ drd_start_suppression(avma, avma + size, ".gotplt");
+ }
}
}
@@ -1008,14 +1018,6 @@
switch (st->tag)
{
- case Ist_IMark:
- {
- const VgSectKind sk = VG_(seginfo_sect_kind)(0, 0, st->Ist.IMark.addr);
- instrument = sk != Vg_SectPLT;
- addStmtToIRSB(bb, st);
- break;
- }
-
case Ist_MBE:
switch (st->Ist.MBE.event)
{
|