diff options
author | Ian Lance Taylor <iant@google.com> | 2008-03-13 01:46:17 +0000 |
---|---|---|
committer | Ian Lance Taylor <iant@google.com> | 2008-03-13 01:46:17 +0000 |
commit | 4788f1b41bdf5f2a760c1b277b767458fc0131f4 (patch) | |
tree | 21802ed5bc1aae73855b8065cb0fa5ad43ca425c /gold/dirsearch.cc | |
parent | 77cd5c44c7ee64ed8f55276e313bae2b9d6b4904 (diff) | |
download | binutils-redhat-4788f1b41bdf5f2a760c1b277b767458fc0131f4.tar.gz |
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.cc | 22 |
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()); } } |