diff options
author | nealsid <nealsid@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2009-02-19 21:26:20 +0000 |
---|---|---|
committer | nealsid <nealsid@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2009-02-19 21:26:20 +0000 |
commit | 0fd2f1ae2152782f2127c56fb5302002c95502d3 (patch) | |
tree | 021783dc670766ed1781eb79fde45c30fb55a964 /src/processor/stackwalker.cc | |
parent | Issue 275: patch to include list of loaded modules in crash_report output (diff) | |
download | breakpad-0fd2f1ae2152782f2127c56fb5302002c95502d3.tar.xz |
Modify symbol supplier interface to support an overload that takes a symbol data buffer, to get around an extraneous read/write of symbol data
R=doshimun
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@311 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/processor/stackwalker.cc')
-rw-r--r-- | src/processor/stackwalker.cc | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/processor/stackwalker.cc b/src/processor/stackwalker.cc index cdb0ce52..de67bdaa 100644 --- a/src/processor/stackwalker.cc +++ b/src/processor/stackwalker.cc @@ -101,13 +101,15 @@ bool Stackwalker::Walk(CallStack *stack) { if (resolver_ && !resolver_->HasModule(frame->module->code_file()) && supplier_) { - string symbol_file; + string symbol_data, symbol_file; SymbolSupplier::SymbolResult symbol_result = - supplier_->GetSymbolFile(module, system_info_, &symbol_file); + supplier_->GetSymbolFile(module, system_info_, + &symbol_file, &symbol_data); switch (symbol_result) { case SymbolSupplier::FOUND: - resolver_->LoadModule(frame->module->code_file(), symbol_file); + resolver_->LoadModuleUsingMapBuffer(frame->module->code_file(), + symbol_data); break; case SymbolSupplier::NOT_FOUND: break; // nothing to do |