|
From: <sv...@va...> - 2010-01-29 22:37:14
|
Author: sewardj
Date: 2010-01-29 22:37:02 +0000 (Fri, 29 Jan 2010)
New Revision: 11033
Log:
PE/PDB handling: allow the PDB (the debuginfo file) to be up to 1
minute older than the PE (the .exe/.dll it describes) even though this
doesn't seem particularly safe. Partially fixes #190675.
(patch from Dan Kegel)
Modified:
trunk/coregrind/m_debuginfo/debuginfo.c
Modified: trunk/coregrind/m_debuginfo/debuginfo.c
===================================================================
--- trunk/coregrind/m_debuginfo/debuginfo.c 2010-01-28 15:23:54 UTC (rev 11032)
+++ trunk/coregrind/m_debuginfo/debuginfo.c 2010-01-29 22:37:02 UTC (rev 11033)
@@ -971,9 +971,15 @@
goto out;
}
pdb_mtime = stat_buf.mtime;
- if (pdb_mtime < obj_mtime ) {
- /* PDB file is older than PE file - ignore it or we will either
- (a) print wrong stack traces or more likely (b) crash. */
+
+ if (obj_mtime - pdb_mtime > 60ULL) {
+ /* PDB file is older than PE file. Really, the PDB should be
+ newer than the PE, but that doesn't always seem to be the
+ case. Allow the PDB to be up to one minute older.
+ Otherwise, it's probably out of date, in which case ignore it
+ or we will either (a) print wrong stack traces or more likely
+ (b) crash.
+ */
VG_(message)(Vg_UserMsg,
"Warning: Ignoring %s since it is older than %s\n",
pdbname, exename);
|