summaryrefslogtreecommitdiff
path: root/gold/dirsearch.cc
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2008-03-13 01:46:17 +0000
committerIan Lance Taylor <iant@google.com>2008-03-13 01:46:17 +0000
commit2285a61069d360fc56b6cf7371a6fe3ac4e240b7 (patch)
tree9ec30b1d79e193e37204f5e2e06c5c42fceb5d56 /gold/dirsearch.cc
parent858b27aeedf30683566a6f25045977644f0e7d23 (diff)
From Craig Silverstein: Implement --debug=files to track file opens,
and implement --verbose as a synonym.
Diffstat (limited to 'gold/dirsearch.cc')
-rw-r--r--gold/dirsearch.cc22
1 files changed, 18 insertions, 4 deletions
diff --git a/gold/dirsearch.cc b/gold/dirsearch.cc
index 960c8eb4e5..93808899d7 100644
--- a/gold/dirsearch.cc
+++ b/gold/dirsearch.cc
@@ -27,6 +27,7 @@
#include <sys/types.h>
#include <dirent.h>
+#include "debug.h"
#include "gold-threads.h"
#include "options.h"
#include "workqueue.h"
@@ -235,6 +236,9 @@ Dirsearch::initialize(Workqueue* workqueue,
}
}
+// NOTE: we only log failed file-lookup attempts here. Successfully
+// lookups will eventually get logged in File_read::open.
+
std::string
Dirsearch::find(const std::string& n1, const std::string& n2,
bool *is_in_sysroot) const
@@ -253,10 +257,20 @@ Dirsearch::find(const std::string& n1, const std::string& n2,
*is_in_sysroot = p->is_in_sysroot();
return p->name() + '/' + n1;
}
- if (!n2.empty() && pdc->find(n2))
- {
- *is_in_sysroot = p->is_in_sysroot();
- return p->name() + '/' + n2;
+ else
+ gold_debug(DEBUG_FILES, "Attempt to open %s/%s failed",
+ p->name().c_str(), n1.c_str());
+
+ if (!n2.empty())
+ {
+ if (pdc->find(n2))
+ {
+ *is_in_sysroot = p->is_in_sysroot();
+ return p->name() + '/' + n2;
+ }
+ else
+ gold_debug(DEBUG_FILES, "Attempt to open %s/%s failed",
+ p->name().c_str(), n2.c_str());
}
}