How to debug a SIGSEGV on a Mac?
I just starting as an Android app developer and I already have a problem with my first app :(
It's a webapp created with jQTouch and packaged with PhoneGap that is on the market for a few weeks. One customer is running it on a Motorola Milestone (Canadian equivalent of the Droid) using Android 2.1 and she says it's crash开发者_JAVA技巧ing.
I tried to reproduce it with the AVD I defined from the following website and I do get a SIGSEGV exception. http://mobile.tutsplus.com/tutorials/android/common-android-virtual-device-configurations/
I looked around and I learned that I have to run the log trace in a tool to view the reason behind the crash. I found two tools, stack.py and parse_stack.py, however they require a command to be installed: arm-eabi-addr2line and I don't have it. Searching again, I found it on GitHub: https://github.com/jsnyder/arm-eabi-toolchain/
Now, trying to install this command, it says I don't have a recent enough version of GCC. I have the latest XCode installed and I think it comes with GCC. Or else it would just say that GCC is not found.
Questions
- How do I get this command, arm-eabi-addr2line, installed on my Mac?
- Am I doing this for nothing? If stack.py tells me something is wrong in the Android SDK, what can I do to fix my app?
- VERY BIG THANK YOU!
You do not debug SIGSEGV crashes unless you are writing your own firmware. Those represent very low-level crashes in Android.
Package up a sample project that demonstrates the crash and upload it to http://b.android.com, along with a list of steps for how to reproduce the crash. Also include there the SIGSEGV crash dump that you are seeing in LogCat.
MacPorts is a great tool for installing anything you might need to debug this as it can install python, and newer versions of gcc for you http://www.macports.org/
精彩评论