Processor can attempt processing all threads even when interrupted (#177).

r=ted.mielczarek

http://groups.google.com/group/google-breakpad-dev/browse_thread/thread/8fda7c96fa7b5d57


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@178 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
mmentovai 2007-05-25 19:10:19 +00:00
parent 32b802dba3
commit 6ed453a770

View File

@ -112,6 +112,7 @@ MinidumpProcessor::ProcessResult MinidumpProcessor::Process(
(has_dump_thread ? "" : "no ") << "dump thread, and " << (has_dump_thread ? "" : "no ") << "dump thread, and " <<
(has_requesting_thread ? "" : "no ") << "requesting thread"; (has_requesting_thread ? "" : "no ") << "requesting thread";
bool interrupted = false;
bool found_requesting_thread = false; bool found_requesting_thread = false;
unsigned int thread_count = threads->thread_count(); unsigned int thread_count = threads->thread_count();
for (unsigned int thread_index = 0; for (unsigned int thread_index = 0;
@ -203,13 +204,18 @@ MinidumpProcessor::ProcessResult MinidumpProcessor::Process(
scoped_ptr<CallStack> stack(new CallStack()); scoped_ptr<CallStack> stack(new CallStack());
if (!stackwalker->Walk(stack.get())) { if (!stackwalker->Walk(stack.get())) {
BPLOG(INFO) << "Processing interrupted by stackwalker (missing " << BPLOG(INFO) << "Stackwalker interrupt (missing symbols?) at " <<
"symbols?) at " << thread_string; thread_string;
return PROCESS_INTERRUPTED; interrupted = true;
} }
process_state->threads_.push_back(stack.release()); 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 a requesting thread was indicated, it must be present.
if (has_requesting_thread && !found_requesting_thread) { if (has_requesting_thread && !found_requesting_thread) {
// Don't mark as an error, but invalidate the requesting thread // Don't mark as an error, but invalidate the requesting thread