aboutsummaryrefslogtreecommitdiff
path: root/src/processor
diff options
context:
space:
mode:
authorbryner <bryner@4c0a9323-5329-0410-9bdc-e9ce6186880e>2006-09-08 04:05:46 +0000
committerbryner <bryner@4c0a9323-5329-0410-9bdc-e9ce6186880e>2006-09-08 04:05:46 +0000
commit512511a895dbe51493b11ff8680fa1f5d4ebecee (patch)
tree4cd7f483327746cb9b5ceeb0216b170bf9b8ab35 /src/processor
parentAdd support to the StackWalker for resolving symbols, using a (diff)
downloadbreakpad-512511a895dbe51493b11ff8680fa1f5d4ebecee.tar.xz
addressing follow-up review comments from mark (#17)
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@19 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/processor')
-rw-r--r--src/processor/stackwalker.cc5
-rw-r--r--src/processor/stackwalker.h4
2 files changed, 4 insertions, 5 deletions
diff --git a/src/processor/stackwalker.cc b/src/processor/stackwalker.cc
index f2a068a5..0103e850 100644
--- a/src/processor/stackwalker.cc
+++ b/src/processor/stackwalker.cc
@@ -44,7 +44,6 @@ Stackwalker::Stackwalker(MemoryRegion* memory, MinidumpModuleList* modules,
void Stackwalker::Walk(StackFrames *frames) {
frames->clear();
- bool resolve_symbols = (modules_ && supplier_);
SourceLineResolver resolver;
// Begin with the context frame, and keep getting callers until there are
@@ -64,12 +63,12 @@ void Stackwalker::Walk(StackFrames *frames) {
if (module) {
frame->module_name = *(module->GetName());
frame->module_base = module->base_address();
- if (resolve_symbols) {
+ if (modules_ && supplier_) {
string symbol_file = supplier_->GetSymbolFile(module, report_);
if (!symbol_file.empty()) {
resolver.LoadModule(*(module->GetName()), symbol_file);
+ resolver.FillSourceLineInfo(frame.get());
}
- resolver.FillSourceLineInfo(frame.get());
}
}
}
diff --git a/src/processor/stackwalker.h b/src/processor/stackwalker.h
index 34d9a3f4..07a78ca2 100644
--- a/src/processor/stackwalker.h
+++ b/src/processor/stackwalker.h
@@ -45,8 +45,8 @@ class Stackwalker {
virtual ~Stackwalker() {}
// Fills the given vector of StackFrames by calling GetContextFrame and
- // GetCallerFrame, and populating the returned frames with module
- // offset and name information if possible.
+ // GetCallerFrame, and populating the returned frames with all available
+ // data.
void Walk(StackFrames *frames);
protected: