diff options
author | Ian Lance Taylor <iant@google.com> | 2007-12-04 23:11:35 +0000 |
---|---|---|
committer | Ian Lance Taylor <iant@google.com> | 2007-12-04 23:11:35 +0000 |
commit | abaa399568d8dea6b959350e387968eb746115c9 (patch) | |
tree | 23c1bb93b71b6c732cc908b6b470a481232f82e0 /gold | |
parent | fd4980a3b8749aa27c12b4eacaa7f654d24c1957 (diff) | |
download | gdb-abaa399568d8dea6b959350e387968eb746115c9.zip gdb-abaa399568d8dea6b959350e387968eb746115c9.tar.gz gdb-abaa399568d8dea6b959350e387968eb746115c9.tar.bz2 |
Print symbol table statistics with --stats.
Diffstat (limited to 'gold')
-rw-r--r-- | gold/main.cc | 1 | ||||
-rw-r--r-- | gold/symtab.cc | 14 | ||||
-rw-r--r-- | gold/symtab.h | 4 |
3 files changed, 19 insertions, 0 deletions
diff --git a/gold/main.cc b/gold/main.cc index a4dcc5a..fe56aad 100644 --- a/gold/main.cc +++ b/gold/main.cc @@ -106,6 +106,7 @@ main(int argc, char** argv) File_read::print_stats(); fprintf(stderr, _("%s: output file size: %lld bytes\n"), program_name, static_cast<long long>(layout.output_file_size())); + symtab.print_stats(); } gold_exit(errors.error_count() == 0); diff --git a/gold/symtab.cc b/gold/symtab.cc index b2901ab..6094c2a 100644 --- a/gold/symtab.cc +++ b/gold/symtab.cc @@ -1897,6 +1897,20 @@ Symbol_table::sized_write_section_symbol(const Output_section* os, of->write_output_view(offset, sym_size, pov); } +// Print statistical information to stderr. This is used for --stats. + +void +Symbol_table::print_stats() const +{ +#if defined(HAVE_TR1_UNORDERED_MAP) || defined(HAVE_EXT_HASH_MAP) + fprintf(stderr, _("%s: symbol table entries: %zu; buckets: %zu\n"), + program_name, this->table_.size(), this->table_.bucket_count()); +#else + fprintf(stderr, _("%s: symbol table entries: %zu\n"), + program_name, this->table_.size()); +#endif +} + // We check for ODR violations by looking for symbols with the same // name for which the debugging information reports that they were // defined in different source locations. When comparing the source diff --git a/gold/symtab.h b/gold/symtab.h index 9c7fb09..6d2577b 100644 --- a/gold/symtab.h +++ b/gold/symtab.h @@ -1127,6 +1127,10 @@ class Symbol_table void write_section_symbol(const Output_section*, Output_file*, off_t) const; + // Dump statistical information to stderr. + void + print_stats() const; + private: Symbol_table(const Symbol_table&); Symbol_table& operator=(const Symbol_table&); |