diff options
author | nealsid <nealsid@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2010-03-03 01:29:04 +0000 |
---|---|---|
committer | nealsid <nealsid@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2010-03-03 01:29:04 +0000 |
commit | 19374d263649a51c8bb56f2f01d3466905847670 (patch) | |
tree | 1c0c3d639bb651ce56fa57dcb6093910e2301cf3 /src/processor/stackwalker.cc | |
parent | 81aadb99a6acf7f1175e8c6f538a609c96b3a961 (diff) | |
download | google-breakpad-19374d263649a51c8bb56f2f01d3466905847670.tar.gz |
Fix to cache NOT_FOUND results from symbol supplier on a per-minidump basis
http://breakpad.appspot.com/64001
R=ted.mielczarek, brdevmn
A=nealsid
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@543 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/processor/stackwalker.cc')
-rw-r--r-- | src/processor/stackwalker.cc | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/processor/stackwalker.cc b/src/processor/stackwalker.cc index 3a3725fa..3b9a313a 100644 --- a/src/processor/stackwalker.cc +++ b/src/processor/stackwalker.cc @@ -93,6 +93,8 @@ bool Stackwalker::Walk(CallStack *stack) { frame->module = module; if (resolver_ && !resolver_->HasModule(frame->module->code_file()) && + no_symbol_modules_.find( + module->code_file()) == no_symbol_modules_.end() && supplier_) { string symbol_data, symbol_file; SymbolSupplier::SymbolResult symbol_result = @@ -105,6 +107,7 @@ bool Stackwalker::Walk(CallStack *stack) { symbol_data); break; case SymbolSupplier::NOT_FOUND: + no_symbol_modules_.insert(module->code_file()); break; // nothing to do case SymbolSupplier::INTERRUPT: return false; |