Arresto anomalo di Xcode Instruments

2

Sono strumenti in esecuzione tramite terminale:

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

per diversi script di test.

Ma continuo a subire incidenti sporadici e questo interferisce con il flusso di lavoro che ho impostato.

Qualcuno può dirmi cosa significa:

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

Grazie!

P.S. Non sono sicuro se questo è il sito giusto per pubblicare questa domanda.

    
posta stackErr 24.10.2012 - 18:39
fonte

4 risposte

3

Ho visto quell'eccezione prima quando lancio una primitiva Javascript e si riproduce in modo affidabile e coerente con il mio Instruments-4.5 (4523).

I tuoi commenti affermano che questo non si riproduce in modo affidabile. È possibile che i tuoi test non prendano lo stesso percorso in modo affidabile (e quindi, non costantemente proiettando), ed è per questo che si riproducono solo a volte? Prima di continuare, ti suggerisco di verificare che i tuoi test seguano lo stesso percorso in modo coerente.

Per verificare il lancio di una primitiva Javascript è il caso dei test, segui questi passaggi.

Trova un file di test Javascript che si riproduce con InstrumentsException.

Verifica che il test Javascript lanci una primitiva Javascript, al contrario di un oggetto Javascript. Nello specifico, vuoi una linea che usi "lancia" ma non usi "nuovo" nella stessa riga. La riga relativa dovrebbe apparire come questa,

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

non

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

Verifica che l'installazione in effetti lanci quella specifica InstrumentsException quando lanci una primitiva.

throw "Who's your daddy";

A questo punto, hai un sospetto piuttosto buono. Ma per essere più sicuro, prova a rimuovere la sospetta linea di "lancio" o sostituirla con qualcos'altro, solo per vedere se riesci a far passare il test.

    
risposta data 28.11.2012 - 06:46
fonte
2

La risposta ovvia, anche se probabilmente non utile, è che mentre si fa qualcosa con l'automazione, Instruments ha incontrato una stringa mancante mentre cercava di aggiungerla a una stringa esistente. Sarei diffidente nei confronti di qualcosa nel file .js che funge da catalizzatore per questo.

Lo registrerei comunque come un bug, dal momento che un input errato (se questo dovesse essere il motivo) non dovrebbe causare un arresto anomalo.

    
risposta data 24.10.2012 - 21:30
fonte
1

Stavo solo sperimentando arresti riproducibili al 100% in strumenti (non molto produttivi) che sembra siano stati risolti ricostruendo l'indice spotlight ( sudo mdutil -E / ), quindi potrebbe valere la pena provare per chiunque non riesca a procurarsi gli strumenti per correre per più di qualche secondo.

    
risposta data 14.06.2013 - 08:35
fonte
0

FWIW, sto ottenendo esattamente la stessa traccia cercando di eseguire strumenti attraverso il framework zucchini (i valori del puntatore sono diversi, ma la traccia è la stessa). Posso eseguire il framework sull'esempio CoreDataBooks senza errori, ma quando provo a indicarlo nella mia app di sviluppo, ottengo questo problema. Sospetto una versione non corrispondente, dal momento che sto eseguendo zucchine su Xcode 4.5.1 e la maggior parte della folla di zucchine non c'è ancora. Ma invocare zucchine ottiene le stesse due righe di errore che hai iniziato. Buona fortuna, aggiornerò se trovo qualcosa di interessante.

    
risposta data 25.10.2012 - 20:58
fonte

Leggi altre domande sui tag