diff options
author | mmentovai <mmentovai@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2006-09-25 18:29:48 +0000 |
---|---|---|
committer | mmentovai <mmentovai@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2006-09-25 18:29:48 +0000 |
commit | 960e5277ee489960c40c50c6222606200419302a (patch) | |
tree | 33a3b8a0ecba5cd6c961966d93f6270acc7a40d9 /src/processor/minidump_processor.cc | |
parent | Add ppc support to minidump reader (#27). r=bryner. (diff) | |
download | breakpad-960e5277ee489960c40c50c6222606200419302a.tar.xz |
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
Diffstat (limited to 'src/processor/minidump_processor.cc')
-rw-r--r-- | src/processor/minidump_processor.cc | 16 |
1 files changed, 12 insertions, 4 deletions
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 <memory> + #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<Stackwalker> walker( + Stackwalker::StackwalkerForCPU(exception->GetContext(), thread_memory, + dump.GetModuleList(), supplier_)); + if (!walker.get()) { + return false; + } + + walker->Walk(stack_frames); return true; } |