2011-02-18 6 views
1

Je viens de commencer en tant que développeur d'applications Android et j'ai déjà un problème avec ma première application :(Comment déboguer un SIGSEGV sur un Mac?

Il est un webapp créé avec jQTouch et emballé avec PhoneGap qui est sur le marché depuis quelques semaines. Un client est en cours d'exécution sur un Motorola Milestone (équivalent canadien du Droid) utilisant Android 2.1 et elle dit qu'il est écraser.

J'ai essayé de le reproduire avec l'AVD je définissais le site Web suivant et je reçois une exception SIGSEGV. http://mobile.tutsplus.com/tutorials/android/common-android-virtual-device-configurations/

J'ai regardé autour et je appris que je dois exécuter la trace log dans un outil pour voir la raison derrière l'accident. J'ai trouvé deux outils, stack.py et parse_stack.py, mais ils nécessitent l'installation d'une commande: arm-eabi-addr2line et je ne l'ai pas. En recherchant à nouveau, je l'ai trouvé sur GitHub: https://github.com/jsnyder/arm-eabi-toolchain/

Maintenant, essayant d'installer cette commande, il dit que je n'ai pas une version assez récente de GCC. J'ai le dernier XCode installé et je pense qu'il est livré avec GCC. Ou alors, cela signifierait simplement que GCC n'est pas trouvé.

Questions

  1. Comment puis-je obtenir cette commande, le bras-eabi-addr2line, installé sur mon Mac?
  2. Est-ce que je fais ça pour rien? Si stack.py me dit que quelque chose ne va pas dans le SDK Android, que puis-je faire pour réparer mon application?
  3. TRÈS GRAND MERCI!

Répondre

1

Vous ne pas debug se bloque SIGSEGV à moins que vous écrivez votre propre firmware. Ceux-ci représentent des accidents de très bas niveau sur Android.

Regroupez un exemple de projet qui illustre le plantage et le télécharger vers http://b.android.com, ainsi qu'une liste d'étapes pour reproduire le plantage. Incluez également le vidage sur incident SIGSEGV que vous voyez dans LogCat.

+0

Merci! En fin de compte, j'ai découvert que Android 2.1 n'aime pas une application web packagée Phonegap avec CSS minifié sur une ligne. Minifié sur beaucoup de lignes fonctionne bien: S – Vallieres

+0

@ Alexandr3: Encore une fois, si vous avez un échantillon qui peut reproduire l'erreur, s'il vous plaît le poster sur http://b.android.com - c'est le meilleur moyen de les corriger. Core dumps comme celui-ci semblent attirer un peu plus l'attention que d'autres types de bugs. – CommonsWare

0

MacPorts est un excellent outil pour l'installation de tout ce que vous pourriez avoir besoin de déboguer ce qu'il peut installer python, et les nouvelles versions de gcc pour vous http://www.macports.org/

+0

Merci, mais il semble que j'ai trouvé la raison derrière cette exception SIGSEGV (voir mon commentaire à la réponse ci-dessus) – Vallieres