2 votes

Plantage d'instruments Xcode inconnus

J'exécute les instruments via un terminal :

instruments -t /Developer/Platforms/"iPhoneOS.platform/Developer/Library/Instruments/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate ~/Library/Application\\\ Support/iPhone\\\ Simulator/$simulatorSDKVersion/Applications/<randomUUID>/MyApp.app -e UIASCRIPT someJSFile.js -e UIARESULTSPATH Logs

pour plusieurs scripts de test.

Mais je continue à avoir des plantages sporadiques et cela interfère avec le flux de travail que j'ai mis en place.

Quelqu'un peut-il me dire ce que cela signifie ?

instruments[57679:1603] InstrumentsException : *** -[__NSCFString stringByAppendingString:]: nil argument
instruments[57679:1603] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSCFString stringByAppendingString:]: nil argument'
*** First throw call stack:
(
    0   CoreFoundation                      0x00007fff90ed4f56 __exceptionPreprocess + 198
    1   libobjc.A.dylib                     0x00007fff90598d5e objc_exception_throw + 43
    2   CoreFoundation                      0x00007fff90ed4d8a +[NSException raise:format:arguments:] + 106
    3   CoreFoundation                      0x00007fff90ed4d14 +[NSException raise:format:] + 116
    4   Foundation                          0x00007fff939e9375 -[NSString stringByAppendingString:] + 91
    5   AutomationInstrument                0x000000010c5b6695 AutomationInstrument + 30357
    6   libdispatch.dylib                   0x00007fff8ad07a86 _dispatch_call_block_and_release + 18
    7   libdispatch.dylib                   0x00007fff8ad098f6 _dispatch_main_queue_callback_4CF + 308
    8   CoreFoundation                      0x00007fff90e69e7c __CFRunLoopRun + 1724
    9   CoreFoundation                      0x00007fff90e69486 CFRunLoopRunSpecific + 230
    10  Foundation                          0x00007fff939d7f7b -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 267
    11  Foundation                          0x00007fff93a5bb56 -[NSRunLoop(NSRunLoop) runUntilDate:] + 66
    12  instruments                         0x00000001091d03c1 _mh_execute_header + 13249
    13  instruments                         0x00000001091ce194 _mh_execute_header + 4500
)
terminate called throwing an exception

Merci !

P.S. Je ne suis pas sûr que ce soit le bon site pour poster cette question.

3voto

Jerry Jaskierny Points 31

J'ai déjà vu cette exception lorsque je lance une primitive Javascript et elle se reproduit de manière fiable et cohérente avec mes Instruments-4.5 (4523).

Vos commentaires indiquent que cela ne se reproduit pas de manière fiable. Est-il possible que vos tests n'empruntent pas le même chemin de manière fiable (et donc, ne lancent pas systématiquement), et c'est pourquoi ils ne se reproduisent que parfois ? Avant de continuer, je vous suggère de vérifier que vos tests prennent le même chemin de manière cohérente.

Pour vérifier que le lancement d'une primitive Javascript est le cas dans vos tests, procédez comme suit.

Trouvez un fichier de test Javascript qui se reproduit avec votre InstrumentsException.

Vérifiez que le test Javascript lance une primitive Javascript, par opposition à un objet Javascript. Plus précisément, vous voulez une ligne qui utilise "throw" mais pas "new" dans la même ligne. La ligne en question devrait ressembler à ceci,

throw "Who's your daddy";   //Instruments throws an InstrumentsException with this.

pas

throw new Error("Who's your daddy?");  //Instruments has no problems with this.

Vérifiez que votre installation fait lance en fait cette InstrumentsException spécifique quand tu lances une primitive.

throw "Who's your daddy";

A ce stade, vous avez un assez bon suspect. Mais pour en être plus certain, essayez de supprimer la ligne suspecte "throw" ou de la remplacer par autre chose, juste pour voir si vous pouvez faire passer le test.

2voto

Jonas Klemming Points 1377

La réponse évidente, mais probablement pas utile, est qu'en faisant quelque chose avec l'automatisation, Instruments a rencontré une chaîne manquante en essayant de l'ajouter à une chaîne existante. Je soupçonnerais quelque chose dans le fichier .js d'être le catalyseur de ce problème.

Je le classerais quand même dans la catégorie des bogues, car une mauvaise saisie (si cela devait être la raison) ne devrait pas provoquer un plantage.

1voto

Michael Baltaks Points 186

Je viens d'expérimenter des crashs 100% reproductibles dans Instruments (pas très productif) qui semblent avoir été résolus en reconstruisant l'index du spotlight ( sudo mdutil -E / ), cela peut donc valoir la peine d'essayer pour ceux qui ne parviennent pas à faire fonctionner Instruments plus de quelques secondes.

0voto

paleotek Points 1

Pour information, j'obtiens exactement la même trace en essayant d'exécuter des instruments avec le framework Zucchini (les valeurs des pointeurs sont différentes, mais la trace est la même). Je peux exécuter le framework sur l'échantillon CoreDataBooks sans erreur, mais lorsque j'essaie de le diriger vers mon application de développement, j'obtiens ce problème. Je soupçonne un décalage de version, puisque j'exécute Zucchini sur Xcode 4.5.1 et que la plupart des utilisateurs de Zucchini ne sont pas encore là. Mais en invoquant zucchini, vous obtenez les deux mêmes lignes d'erreur que celles avec lesquelles vous avez commencé. Bonne chance, je mettrai à jour si je trouve quelque chose d'intéressant.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X