From 960e5277ee489960c40c50c6222606200419302a Mon Sep 17 00:00:00 2001 From: mmentovai Date: Mon, 25 Sep 2006 18:29:48 +0000 Subject: ppc stackwalker (#30). r=bryner - Implementation of PowerPC stackwalker. Tested using stackwalker_selftest (#18). - Hook up processor-side multi-CPU support in MinidumpProcessor and minidump_stackwalk using the new Stackwalker::StackwalkerForCPU method. http://groups.google.com/group/airbag-dev/browse_thread/thread/1c2fa7c5182a77a9 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@34 4c0a9323-5329-0410-9bdc-e9ce6186880e --- src/processor/minidump_processor.cc | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'src/processor/minidump_processor.cc') diff --git a/src/processor/minidump_processor.cc b/src/processor/minidump_processor.cc index eb520709..f58b54ba 100644 --- a/src/processor/minidump_processor.cc +++ b/src/processor/minidump_processor.cc @@ -27,10 +27,14 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +#include + #include "google/minidump_processor.h" #include "processor/minidump.h" #include "processor/stackwalker_x86.h" +using std::auto_ptr; + namespace google_airbag { MinidumpProcessor::MinidumpProcessor(SymbolSupplier *supplier) @@ -68,10 +72,14 @@ bool MinidumpProcessor::Process(const string &minidump_file, return false; } - // TODO(bryner): figure out which StackWalker we want - StackwalkerX86 walker(exception->GetContext(), thread_memory, - dump.GetModuleList(), supplier_); - walker.Walk(stack_frames); + auto_ptr walker( + Stackwalker::StackwalkerForCPU(exception->GetContext(), thread_memory, + dump.GetModuleList(), supplier_)); + if (!walker.get()) { + return false; + } + + walker->Walk(stack_frames); return true; } -- cgit v1.2.1