Get rid of CrashReport, and rename CrashReportProcessor to MinidumpProcessor

(#26) r=mmentovai.



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@26 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
bryner 2006-09-19 21:58:41 +00:00
parent d9fb68c3e0
commit cce3492afc
13 changed files with 788 additions and 1328 deletions

View file

@ -0,0 +1,64 @@
// Copyright (C) 2006 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include "google/minidump_processor.h"
#include "processor/minidump.h"
#include "processor/stackwalker_x86.h"
namespace google_airbag {
MinidumpProcessor::MinidumpProcessor(SymbolSupplier *supplier)
: supplier_(supplier) {
}
MinidumpProcessor::~MinidumpProcessor() {
}
bool MinidumpProcessor::Process(const string &minidump_file,
void *supplier_data,
StackFrames *stack_frames) {
Minidump dump(minidump_file);
if (!dump.Read()) {
return false;
}
MinidumpException *exception = dump.GetException();
if (!exception) {
return false;
}
MinidumpThreadList *threads = dump.GetThreadList();
if (!threads) {
return false;
}
// TODO(bryner): get all the threads
MinidumpThread *thread = threads->GetThreadByID(exception->GetThreadID());
if (!thread) {
return false;
}
MinidumpMemoryRegion *thread_memory = thread->GetMemory();
if (!thread_memory) {
return false;
}
// TODO(bryner): figure out which StackWalker we want
StackwalkerX86 walker(exception->GetContext(), thread_memory,
dump.GetModuleList(), supplier_, supplier_data);
walker.Walk(stack_frames);
return true;
}
} // namespace google_airbag