diff options
author | Doug Evans <xdje42@gmail.com> | 2015-01-10 22:27:10 -0800 |
---|---|---|
committer | Doug Evans <xdje42@gmail.com> | 2015-01-10 22:27:10 -0800 |
commit | b2fb95e006c29e2cbe4b30523879fe3640f906ad (patch) | |
tree | af09dfe626b825c7f256037feae1b4fccf8c16d0 /gdb/doc | |
parent | 328cb676af66e9a70c5af0426282cc233f1a909b (diff) | |
download | gdb-b2fb95e006c29e2cbe4b30523879fe3640f906ad.zip gdb-b2fb95e006c29e2cbe4b30523879fe3640f906ad.tar.gz gdb-b2fb95e006c29e2cbe4b30523879fe3640f906ad.tar.bz2 |
Add symbol lookup cache.
gdb/ChangeLog:
Add symbol lookup cache.
* NEWS: Document new options and commands.
* symtab.c (symbol_cache_key): New static global.
(DEFAULT_SYMBOL_CACHE_SIZE, MAX_SYMBOL_CACHE_SIZE): New macros.
(SYMBOL_LOOKUP_FAILED): New macro.
(symbol_cache_slot_state): New enum.
(block_symbol_cache): New struct.
(symbol_cache): New struct.
(new_symbol_cache_size, symbol_cache_size): New static globals.
(hash_symbol_entry, eq_symbol_entry): New functions.
(symbol_cache_byte_size, resize_symbol_cache): New functions.
(make_symbol_cache, free_symbol_cache): New functions.
(get_symbol_cache, symbol_cache_cleanup): New function.
(set_symbol_cache_size, set_symbol_cache_size_handler): New functions.
(symbol_cache_lookup, symbol_cache_clear_slot): New function.
(symbol_cache_mark_found, symbol_cache_mark_not_found): New functions.
(symbol_cache_flush, symbol_cache_dump): New functions.
(maintenance_print_symbol_cache): New function.
(maintenance_flush_symbol_cache): New function.
(symbol_cache_stats): New function.
(maintenance_print_symbol_cache_statistics): New function.
(symtab_new_objfile_observer): New function.
(symtab_free_objfile_observer): New function.
(lookup_static_symbol, lookup_global_symbol): Use symbol cache.
(_initialize_symtab): Init symbol_cache_key. New parameter
maint symbol-cache-size. New maint commands print symbol-cache,
print symbol-cache-statistics, flush-symbol-cache.
Install new_objfile, free_objfile observers.
doc/ChangeLog:
* gdb.texinfo (Symbols): Document new commands
"maint print symbol-cache", "maint print symbol-cache-statistics",
"maint flush-symbol-cache". Document new option
"maint set symbol-cache-size".
Diffstat (limited to 'gdb/doc')
-rw-r--r-- | gdb/doc/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/doc/gdb.texinfo | 33 |
2 files changed, 39 insertions, 1 deletions
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index aab69f9..06e4f20 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,10 @@ +2015-01-10 Doug Evans <xdje42@gmail.com> + + * gdb.texinfo (Symbols): Document new commands + "maint print symbol-cache", "maint print symbol-cache-statistics", + "maint flush-symbol-cache". Document new option + "maint set symbol-cache-size". + 2014-12-31 Joel Brobecker <brobecker@adacore.com> * gdb.texinfo (Files): Remove documentation of the diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index f4d7132..b752524 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -16471,8 +16471,39 @@ line 1574. @} (@value{GDBP}) @end smallexample -@end table +@kindex maint set symbol-cache-size +@cindex symbol cache size +@item maint set symbol-cache-size @var{size} +Set the size of the symbol cache to @var{size}. +The default size is intended to be good enough for debugging +most applications. This option exists to allow for experimenting +with different sizes. + +@kindex maint show symbol-cache-size +@item maint show symbol-cache-size +Show the size of the symbol cache. + +@kindex maint print symbol-cache +@cindex symbol cache, printing its contents +@item maint print symbol-cache +Print the contents of the symbol cache. +This is useful when debugging symbol cache issues. + +@kindex maint print symbol-cache-statistics +@cindex symbol cache, printing usage statistics +@item maint print symbol-cache-statistics +Print symbol cache usage statistics. +This helps determine how well the cache is being utilized. + +@kindex maint flush-symbol-cache +@cindex symbol cache, flushing +@item maint flush-symbol-cache +Flush the contents of the symbol cache, all entries are removed. +This command is useful when debugging the symbol cache. +It is also useful when collecting performance data. + +@end table @node Altering @chapter Altering Execution |