aboutsummaryrefslogtreecommitdiff
path: root/src/processor/microdump_processor.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/processor/microdump_processor.cc')
-rw-r--r--src/processor/microdump_processor.cc22
1 files changed, 8 insertions, 14 deletions
diff --git a/src/processor/microdump_processor.cc b/src/processor/microdump_processor.cc
index c1d8c281..2d3a9558 100644
--- a/src/processor/microdump_processor.cc
+++ b/src/processor/microdump_processor.cc
@@ -54,24 +54,18 @@ MicrodumpProcessor::MicrodumpProcessor(StackFrameSymbolizer* frame_symbolizer)
MicrodumpProcessor::~MicrodumpProcessor() {}
-ProcessResult MicrodumpProcessor::Process(const string &microdump_contents,
+ProcessResult MicrodumpProcessor::Process(Microdump *microdump,
ProcessState* process_state) {
assert(process_state);
process_state->Clear();
- if (microdump_contents.empty()) {
- BPLOG(ERROR) << "Microdump is empty.";
- return PROCESS_ERROR_MINIDUMP_NOT_FOUND;
- }
-
- Microdump microdump(microdump_contents);
- process_state->modules_ = microdump.GetModules()->Copy();
+ process_state->modules_ = microdump->GetModules()->Copy();
scoped_ptr<Stackwalker> stackwalker(
Stackwalker::StackwalkerForCPU(
&process_state->system_info_,
- microdump.GetContext(),
- microdump.GetMemory(),
+ microdump->GetContext(),
+ microdump->GetMemory(),
process_state->modules_,
/* unloaded_modules= */ NULL,
frame_symbolizer_));
@@ -90,12 +84,12 @@ ProcessResult MicrodumpProcessor::Process(const string &microdump_contents,
}
process_state->threads_.push_back(stack.release());
- process_state->thread_memory_regions_.push_back(microdump.GetMemory());
+ process_state->thread_memory_regions_.push_back(microdump->GetMemory());
process_state->crashed_ = true;
process_state->requesting_thread_ = 0;
- process_state->system_info_ = *microdump.GetSystemInfo();
- process_state->crash_reason_ = microdump.GetCrashReason();
- process_state->crash_address_ = microdump.GetCrashAddress();
+ process_state->system_info_ = *microdump->GetSystemInfo();
+ process_state->crash_reason_ = microdump->GetCrashReason();
+ process_state->crash_address_ = microdump->GetCrashAddress();
return PROCESS_OK;
}