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 | 2285a61069d360fc56b6cf7371a6fe3ac4e240b7 (patch) | |
tree | 9ec30b1d79e193e37204f5e2e06c5c42fceb5d56 /gold/dirsearch.cc | |
parent | *** empty log message *** (diff) | |
download | binutils-gdb-2285a61069d360fc56b6cf7371a6fe3ac4e240b7.tar.gz binutils-gdb-2285a61069d360fc56b6cf7371a6fe3ac4e240b7.tar.bz2 binutils-gdb-2285a61069d360fc56b6cf7371a6fe3ac4e240b7.zip |
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 960c8eb4e55..93808899d7c 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()); } } |