aboutsummaryrefslogtreecommitdiff
path: root/src/processor
diff options
context:
space:
mode:
Diffstat (limited to 'src/processor')
-rw-r--r--src/processor/minidump_processor.cc12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/processor/minidump_processor.cc b/src/processor/minidump_processor.cc
index a2a31427..6ab8c07d 100644
--- a/src/processor/minidump_processor.cc
+++ b/src/processor/minidump_processor.cc
@@ -112,6 +112,7 @@ MinidumpProcessor::ProcessResult MinidumpProcessor::Process(
(has_dump_thread ? "" : "no ") << "dump thread, and " <<
(has_requesting_thread ? "" : "no ") << "requesting thread";
+ bool interrupted = false;
bool found_requesting_thread = false;
unsigned int thread_count = threads->thread_count();
for (unsigned int thread_index = 0;
@@ -203,13 +204,18 @@ MinidumpProcessor::ProcessResult MinidumpProcessor::Process(
scoped_ptr<CallStack> stack(new CallStack());
if (!stackwalker->Walk(stack.get())) {
- BPLOG(INFO) << "Processing interrupted by stackwalker (missing " <<
- "symbols?) at " << thread_string;
- return PROCESS_INTERRUPTED;
+ BPLOG(INFO) << "Stackwalker interrupt (missing symbols?) at " <<
+ thread_string;
+ interrupted = true;
}
process_state->threads_.push_back(stack.release());
}
+ if (interrupted) {
+ BPLOG(INFO) << "Processing interrupted for " << minidump_file;
+ return PROCESS_INTERRUPTED;
+ }
+
// If a requesting thread was indicated, it must be present.
if (has_requesting_thread && !found_requesting_thread) {
// Don't mark as an error, but invalidate the requesting thread