aboutsummaryrefslogtreecommitdiff
path: root/src/processor/minidump_stackwalk.cc
diff options
context:
space:
mode:
authorbryner <bryner@4c0a9323-5329-0410-9bdc-e9ce6186880e>2006-12-08 04:13:51 +0000
committerbryner <bryner@4c0a9323-5329-0410-9bdc-e9ce6186880e>2006-12-08 04:13:51 +0000
commitf33b8d2d07a057fdd667c2e0db629ba7cbc37cc3 (patch)
tree07ea0ac380d1f401750f7f9cea85907064e037f3 /src/processor/minidump_stackwalk.cc
parentAllow exception handler callbacks more flexibility (#81). r=bryner (diff)
downloadbreakpad-f33b8d2d07a057fdd667c2e0db629ba7cbc37cc3.tar.xz
Provide a mechanism for SymbolSuppliers to interrupt processing (#93)
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@80 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/processor/minidump_stackwalk.cc')
-rw-r--r--src/processor/minidump_stackwalk.cc34
1 files changed, 17 insertions, 17 deletions
diff --git a/src/processor/minidump_stackwalk.cc b/src/processor/minidump_stackwalk.cc
index 62bfd555..3c55933d 100644
--- a/src/processor/minidump_stackwalk.cc
+++ b/src/processor/minidump_stackwalk.cc
@@ -195,18 +195,18 @@ static bool PrintMinidumpProcess(const string &minidump_file,
MinidumpProcessor minidump_processor(symbol_supplier.get());
// Process the minidump.
- scoped_ptr<ProcessState> process_state(
- minidump_processor.Process(minidump_file));
- if (!process_state.get()) {
+ ProcessState process_state;
+ if (minidump_processor.Process(minidump_file, &process_state) !=
+ MinidumpProcessor::PROCESS_OK) {
fprintf(stderr, "MinidumpProcessor::Process failed\n");
return false;
}
// Print OS and CPU information.
- string cpu = process_state->cpu();
- string cpu_info = process_state->cpu_info();
- printf("Operating system: %s\n", process_state->os().c_str());
- printf(" %s\n", process_state->os_version().c_str());
+ string cpu = process_state.cpu();
+ string cpu_info = process_state.cpu_info();
+ printf("Operating system: %s\n", process_state.os().c_str());
+ printf(" %s\n", process_state.os_version().c_str());
printf("CPU: %s\n", cpu.c_str());
if (!cpu_info.empty()) {
// This field is optional.
@@ -215,36 +215,36 @@ static bool PrintMinidumpProcess(const string &minidump_file,
printf("\n");
// Print crash information.
- if (process_state->crashed()) {
- printf("Crash reason: %s\n", process_state->crash_reason().c_str());
- printf("Crash address: 0x%llx\n", process_state->crash_address());
+ if (process_state.crashed()) {
+ printf("Crash reason: %s\n", process_state.crash_reason().c_str());
+ printf("Crash address: 0x%llx\n", process_state.crash_address());
} else {
printf("No crash\n");
}
// If the thread that requested the dump is known, print it first.
- int requesting_thread = process_state->requesting_thread();
+ int requesting_thread = process_state.requesting_thread();
if (requesting_thread != -1) {
printf("\n");
printf("Thread %d (%s)\n",
requesting_thread,
- process_state->crashed() ? "crashed" :
- "requested dump, did not crash");
- PrintStack(process_state->threads()->at(requesting_thread), cpu);
+ process_state.crashed() ? "crashed" :
+ "requested dump, did not crash");
+ PrintStack(process_state.threads()->at(requesting_thread), cpu);
}
// Print all of the threads in the dump.
- int thread_count = process_state->threads()->size();
+ int thread_count = process_state.threads()->size();
for (int thread_index = 0; thread_index < thread_count; ++thread_index) {
if (thread_index != requesting_thread) {
// Don't print the crash thread again, it was already printed.
printf("\n");
printf("Thread %d\n", thread_index);
- PrintStack(process_state->threads()->at(thread_index), cpu);
+ PrintStack(process_state.threads()->at(thread_index), cpu);
}
}
- PrintModules(process_state->modules());
+ PrintModules(process_state.modules());
return true;
}