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
This commit is contained in:
nealsid
2010-03-03 01:29:04 +00:00
parent 81aadb99a6
commit 19374d2636
3 changed files with 68 additions and 2 deletions

View File

@@ -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;