OK, ASÍ que he recibido un informe de error para una de mis aplicaciones, pero te juro que estoy 100% confundido.

Esto es lo que el «núcleo» de la parte de como se ve :

Crashed Thread:  0  Dispatch queue: com.apple.main-thread
Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000
VM Regions Near 0:
--> 
__TEXT                 0000000100000000-0000000100015000 [   84K] r-x/rwx SM=COW  /Applications/MY_APP/Contents/MacOS/MY_APP
Application Specific Information:
objc[337]: garbage collection is ON
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_c.dylib               0x00007fff90128650 strlen + 16
1   MY_BUNDLE_ID                    0x0000000100008f12 0x100000000 + 36626
2   MY_BUNDLE_ID                    0x000000010000b435 0x100000000 + 46133
3   MY_BUNDLE_ID                    0x0000000100003c90 0x100000000 + 15504
4   com.apple.CoreFoundation        0x00007fff9065147a _CFXNotificationPost + 2554
5   com.apple.Foundation            0x00007fff8e5fe846 -[NSNotificationCenter postNotificationName:object:userInfo:] + 64
6   com.apple.AppKit                0x00007fff9a7894a7 -[NSTableView textDidChange:] + 377
7   com.apple.CoreFoundation        0x00007fff9065147a _CFXNotificationPost + 2554
8   com.apple.Foundation            0x00007fff8e5fe846 -[NSNotificationCenter postNotificationName:object:userInfo:] + 64
9   com.apple.AppKit                0x00007fff9a15c260 -[NSTextView(NSSharing) didChangeText] + 339
10  com.apple.AppKit                0x00007fff9a7f8381 _NSDoUserReplaceForCharRange + 390
11  com.apple.AppKit                0x00007fff9a7f85b1 _NSDoUserDeleteForCharRange + 38
12  com.apple.AppKit                0x00007fff9a7e1e72 -[NSTextView(NSKeyBindingCommands) deleteBackward:] + 440
13  com.apple.AppKit                0x00007fff9a18a1cc -[NSResponder doCommandBySelector:] + 75
14  com.apple.AppKit                0x00007fff9a18a02e -[NSTextView doCommandBySelector:] + 197
15  com.apple.AppKit                0x00007fff9a20cf4e -[NSKeyBindingManager(NSKeyBindingManager_MultiClients) interpretEventAsCommand:forClient:] + 2200
16  com.apple.AppKit                0x00007fff9a20c3bb -[NSTextInputContext handleEvent:] + 939
17  com.apple.AppKit                0x00007fff9a20bf87 -[NSView interpretKeyEvents:] + 183
18  com.apple.AppKit                0x00007fff9a158f67 -[NSTextView keyDown:] + 723
19  com.apple.AppKit                0x00007fff9a374120 -[NSWindow sendEvent:] + 9687
20  com.apple.AppKit                0x00007fff9a36f744 -[NSApplication sendEvent:] + 5761
21  com.apple.AppKit                0x00007fff9a2852fa -[NSApplication run] + 636
22  com.apple.AppKit                0x00007fff9a229cb6 NSApplicationMain + 869
23  MY_BUNDLE_ID                        0x0000000100002014 0x100000000 + 8212

¿Tiene usted alguna idea de qué podría ir mal?
O podría simplemente me apunte a la dirección correcta?


Como un aparte :

Alguien podría guiarme cómo hacer que por ejemplo, 0x00007fff90128650 más… significativa y hacer (en algunos futuro de informe de accidente) también muestra el nombre de la función?

Usted necesita symbolicate este informe de accidente así que usted puede ver las referencias a su propio código. Las líneas 1, 2, y 3 de la traza de la pila son de su propia app. Una vez que symbolicate este informe, podrás ver exactamente qué línea de código que está causando el problema.
Y… ¿cómo puedo hacer eso? Tengo que admitir que no sabe casi nada acerca de hacer uso de los informes de errores, hacer darme algunas pautas o señalando a mí de alguna pieza de referencia sería lo ideal. Muchas gracias! 🙂
Mira la Nota Técnica TN2151 en los docs. Se explica cómo hacer esto.
Muchas gracias! Estoy estudiando ahora mismo.
Acabo de notar : hice todas las cosas que describe, pero entonces me di cuenta de que este era un iOS enfoque específico. Mi informe de accidente es para Mac OS X, ¿eh?

OriginalEl autor Dr.Kameleon | 2012-10-14

3 Comentarios

  1. 12

    Su registro de bloqueo dar mucha información:
    primero se estrelló debido a que ha intentado acceder a la dirección 0 en ur programa y el kernel no es feliz.

    Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
    Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000

    Ver, se obtiene una segmentación, por la forma en que se de inicio a la dirección 0x00, así es como estás accediendo directamente 0 /puntero nil.
    Como este

    char* adress = 0;
    printf("get %p", adress); //will output 0x0
    printf("get %p", adress[0]); //will make a EXC_BAD_ACCESS

    Que realmente debería centrarse en ello.

    De la caída de la pila hay tres cosas interesantes:

    6   com.apple.AppKit                0x00007fff9a7894a7 -[NSTableView textDidChange:] + 377
    5   com.apple.Foundation            0x00007fff8e5fe846 -[NSNotificationCenter postNotificationName:object:userInfo:] + 64
    0   libsystem_c.dylib               0x00007fff90128650 strlen + 16

    [textDidChange] es uno de la última llamada que causó el accidente, por la forma en que usted está enviando una notificación cuando el [textDidChange] es despedido. Y la última línea que realmente hacen el accidente: strlen + 16 es porque hay algo que creo que se puede conseguir un char longitud de un puntero válido de direcciones y en realidad no es el caso.

    Según yo, usted debe comprobar lo que usted está enviando a su notificación.

    _NSDoUserReplaceForCharRange
    _NSDoUserDeleteForCharRange

    Cuando usted mira profundamente en la pila de choque, lo que realmente parece que está apareciendo cuando usted hace de la célula – inserción /deleción en ur tableViewController. Usted debe verificar que en algún momento alguien de inserción de datos no válidos, o no uso de la edición de la célula de la manera que se supone que debe ser.

    Así que aquí está el curriculum vitae:
    1 Alguien edita una tableViewCell, no inserte o código no insertar lo que se supone debería ser.
    2 Usted está enviando una notificación con un no-válido de datos dentro de ella.
    3 Cuando el strlen(invalid_dataStructure) es despedido, se hacen ur bloqueo de la aplicación

    Por la forma en que estoy solo «adivinando», ya que no sé en realidad su código de aplicación. Pero espero que se le puede dar un montón de pistas para la sesión de depuración.

    OriginalEl autor Mr Bonjour

  2. 0

    Normalmente, el problema es que se necesita un «retener» a la propiedad.

    Necesitas habilitar los Zombies para el modo de depuración.
    en xCode 4 haga clic en «editar esquema de»->»Diagnóstico»->»Habilitar Zombie Objetos»

    Se mostrará en la consola lo «quita» el objeto de intentar acceder al chocar.

    esto debería ayudar.

    verá algo como esto:

    2010-01-25 14:35:24.840 MyApplication[1393:20b] *** -[CFString retain]: message sent to deallocated instance 0x42a5060

    También puede habilitar «Malloc registro» y después de un fallo entrar en dicho comando en la consola de depuración:

    shell malloc_history 1393 0x42a5060

    allí usted puede encontrar todos alloc/liberación de la pila. basta con mirar a la liberación y la asignación de comandos.

    Todo lo que tengo es un informe de error enviado por un cliente. El problema es que la aplicación se está ejecutando muy bien aquí, así que no hay realmente nada que ver».
    Es un problema). para mí, la mejor manera es preguntar pasos para reproducir y tratar de reproducir localmente.
    «Normalmente, el problema es que se necesita un «retener» a la propiedad». En realidad no, ya que la Excepción de los Códigos: KERN_INVALID_ADDRESS en 0x0000000000000000 no es realmente pointin en algunas de basura valor de puntero

    OriginalEl autor Remizorrr

  3. 0

    Tengo una muy similar de informe de accidente tratando de abrir gráfico-aplicaciones pesadas (pymol y gallaretas) (Ver más abajo)

    Me enteré de que si me desconecto de mi mac de mi monitor externo, de los programas que trabajó de nuevo. Yo estaba usando un USB-conector HDMI – al parecer esto es una mala idea. Acabo de comprar un microUSB-HDMI conector y espero que esto funcione mejor. Los programas se ejecutan si yo sólo uso mi mac book de la propia pantalla del monitor.

    Time Awake Since Boot: 19000 seconds
    Time Since Wake:       110 seconds
    Crashed Thread:        0  Dispatch queue: com.apple.main-thread
    Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
    Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000000
    VM Regions Near 0:
    --> 
    __TEXT                 0000000100000000-0000000100cff000 [ 13.0M] r-x/rwx SM=COW  /Applications/MacPyMOL.app/Contents/MacOS/MacPyMOL
    Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
    0   com.apple.opengl                0x00007fff8333857c CGLDescribeRenderer + 79
    1   com.schrodinger.macpymol        0x000000010083c5b4 CheckOpenGLCaps + 484
    2   com.schrodinger.macpymol        0x000000010084cd8c -[PyMOLOpenGLView awakeFromNib] + 1420
    3   com.apple.CoreFoundation        0x00007fff8a10785f -[NSSet makeObjectsPerformSelector:] + 223
    4   com.apple.AppKit                0x00007fff88b935cd -[NSIBObjectData nibInstantiateWithOwner:options:topLevelObjects:] + 1216
    5   com.apple.AppKit                0x00007fff886a3605 loadNib + 384
    6   com.apple.AppKit                0x00007fff88c14749 +[NSBundle(NSNibLoading) _loadNibFile:nameTable:options:withZone:ownerBundle:] + 727
    7   com.apple.AppKit                0x00007fff88c14ca8 +[NSBundle(NSNibLoadingInternal) _loadNibFile:externalNameTable:options:withZone:] + 150
    8   com.apple.AppKit                0x00007fff886a2bc0 +[NSBundle(NSNibLoading) loadNibNamed:owner:] + 631
    9   com.schrodinger.macpymol        0x000000010084d77b main + 1499
    10  com.schrodinger.macpymol        0x0000000100007494 start + 52

    OriginalEl autor NicoWheat

Dejar respuesta

Please enter your comment!
Please enter your name here