Fallo de instrumentos de Xcode desconocido

2

Estoy ejecutando instrumentos a través de Terminal:

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

para varios scripts de prueba.

Pero sigo teniendo bloqueos esporádicos y esto está interfiriendo con el flujo de trabajo que he configurado.

¿Alguien puede decirme qué significa esto?

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

¡Gracias!

P.S. No estoy seguro de si este es el sitio adecuado para publicar esta pregunta.

    
pregunta stackErr 24.10.2012 - 18:39

4 respuestas

3

He visto esa excepción antes cuando lanzo una primitiva de Javascript y se reproduce de manera confiable y consistente con mis instrumentos 4.5 (4523).

Sus comentarios indican que esto no se reproduce de manera confiable. ¿Es posible que sus pruebas no tomen el mismo camino de manera confiable (y, por lo tanto, no se lancen de manera consistente), y es por eso que solo se reproducen algunas veces? Antes de continuar, sugiero que verifique que sus pruebas están tomando el mismo camino de manera constante.

Para verificar el lanzamiento de una primitiva de Javascript es el caso de tus pruebas, sigue estos pasos.

Encuentre un archivo de prueba de Javascript que se reproduzca con su InstrumentsException.

Verifique que la prueba de Javascript arroje una primitiva de Javascript, a diferencia de un objeto de Javascript. Específicamente, desea una línea que use "lanzar" pero no use "nuevo" en la misma línea. La línea correspondiente debe tener este aspecto,

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

no

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

Verifique que su instalación en realidad lance esa excepción de instrumentos específica cuando lance una primitiva.

throw "Who's your daddy";

En este punto, tienes un sospechoso bastante bueno. Pero para estar más seguro, intente eliminar la línea de "lanzamiento" sospechoso o reemplazarla con otra cosa, solo para ver si puede hacer que la prueba pase.

    
respondido por el Jerry Jaskierny 28.11.2012 - 06:46
2

La respuesta obvia, aunque probablemente no sea útil, es que al hacer algo con la automatización, Instruments encontró una cadena que faltaba al intentar agregarla a una cadena existente. Sospecharía que algo en el archivo .js sea el catalizador para esto.

Todavía lo presentaría como un error, ya que una entrada incorrecta (si ese fuera el motivo) no debería causar un bloqueo.

    
respondido por el Phillip Mills 24.10.2012 - 21:30
1

Acabo de experimentar bloqueos reproducibles al 100% en instrumentos (no muy productivos) que parecen haberse solucionado al reconstruir el índice de Spotlight ( sudo mdutil -E / ), por lo que podría valer la pena intentarlo para cualquiera que no pueda obtener instrumentos. para ejecutar durante más de unos pocos segundos.

    
respondido por el Michael Baltaks 14.06.2013 - 08:35
0

FWIW, obtengo exactamente la misma traza al intentar ejecutar los instrumentos a través del marco del calabacín (los valores del puntero son diferentes, pero la traza es la misma). Puedo ejecutar el marco en el ejemplo de CoreDataBooks sin error, pero cuando intento señalarlo a mi aplicación de desarrollo, me sale este problema. Sospecho que una versión no coincide, ya que estoy ejecutando calabacín en Xcode 4.5.1 y la mayoría de la multitud de calabacines aún no está allí. Pero invocar calabacín obtiene las mismas dos líneas de error con las que comenzó. Buena suerte, lo actualizaré si encuentro algo interesante.

    
respondido por el paleotek 25.10.2012 - 20:58

Lea otras preguntas en las etiquetas