web-dev-qa-db-fra.com

EXC_BAD_ACCESS (code = 1, adresse = 0x0) lors de la progression dans le débogueur

Ma demande se bloque à chaque fois que j'essaie de passer un appel. Sans débogueur, cela fonctionne bien.

De plus, lorsque je lance l'application dans le simulateur, elle fonctionne bien avec ou sans débogueur.

Récemment, j'ai mis à niveau mon Mac OS X 10.8 vers 10.9 (Mavericks). Il n'y a eu aucun problème avant la mise à niveau.

Qu'est-ce qui cause le problème et comment le résoudre?

Ci-dessous est la trace arrière. Mon application utilise ARC. J'ai activé les zombies et ajouté un point d'arrêt d'exception, mais aucun zombies où détecté et point d'arrêt d'exception n'est jamais déclenché.

    * thread #1: tid = 0x2503, 0x00000000, queue = 'com.Apple.main-thread, stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
        frame #0: 0x00000000
        frame #1: 0x35e170c4 UIKit`-[UIApplication sendAction:to:from:forEvent:] + 72
        frame #2: 0x35e17076 UIKit`-[UIApplication sendAction:toTarget:fromSender:forEvent:] + 30
        frame #3: 0x35e17054 UIKit`-[UIControl sendAction:to:forEvent:] + 44
        frame #4: 0x35e1690a UIKit`-[UIControl(Internal) _sendActionsForEvents:withEvent:] + 502
        frame #5: 0x35e16e00 UIKit`-[UIControl touchesEnded:withEvent:] + 488
        frame #6: 0x35d3f5f0 UIKit`-[UIWindow _sendTouchesForEvent:] + 524
        frame #7: 0x35d2c800 UIKit`-[UIApplication sendEvent:] + 380
        frame #8: 0x35d2c11a UIKit`_UIApplicationHandleEvent + 6154
        frame #9: 0x37a1e5a2 GraphicsServices`_PurpleEventCallback + 590
        frame #10: 0x37a1e1d2 GraphicsServices`PurpleEventCallback + 34
        frame #11: 0x33ef9172 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 34
        frame #12: 0x33ef9116 CoreFoundation`__CFRunLoopDoSource1 + 138
        frame #13: 0x33ef7f98 CoreFoundation`__CFRunLoopRun + 1384
        frame #14: 0x33e6aebc CoreFoundation`CFRunLoopRunSpecific + 356
        frame #15: 0x33e6ad48 CoreFoundation`CFRunLoopRunInMode + 104
        frame #16: 0x37a1d2ea GraphicsServices`GSEventRunModal + 74
        frame #17: 0x35d80300 UIKit`UIApplicationMain + 1120
        frame #18: 0x000faac8 MyApp`main(argc=1, argv=0x2fd0fd08) + 116 at main.m:16

ÉDITER:

J'ai la dernière version Xcode 5.0.1 (5A2053).

J'ai créé une nouvelle application à partir de zéro et l'ai exécutée sans problème. Ensuite, j'ai mis un point d'arrêt dans ViewControllerviewDidLoad et j'ai essayé de passer par-dessus. Ici j'ai un autre crash

* thread #1: tid = 0x2503, 0x3bb9d7c4 libobjc.A.dylib`objc_msgSendSuper2 + 4, queue = 'com.Apple.main-thread, stop reason = EXC_BAD_ACCESS (code=1, address=0x4)
    frame #0: 0x3bb9d7c4 libobjc.A.dylib`objc_msgSendSuper2 + 4
    frame #1: 0x000b913a test`-[ViewController viewDidLoad](self=0x1cda5c70, _cmd=0x361bd5db) + 62 at ViewController.m:19
    frame #2: 0x35d4b594 UIKit`-[UIViewController loadViewIfRequired] + 364
    frame #3: 0x35d8bd78 UIKit`-[UIWindow addRootViewControllerViewIfPossible] + 64
    frame #4: 0x35d87aec UIKit`-[UIWindow _setHidden:forced:] + 364
    frame #5: 0x35dc91e8 UIKit`-[UIWindow makeKeyAndVisible] + 60
    frame #6: 0x35d8c83e UIKit`-[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1666
    frame #7: 0x35d8484a UIKit`-[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 698
    frame #8: 0x35d2cc38 UIKit`-[UIApplication handleEvent:withNewEvent:] + 1004
    frame #9: 0x35d2c6cc UIKit`-[UIApplication sendEvent:] + 72
    frame #10: 0x35d2c11a UIKit`_UIApplicationHandleEvent + 6154
    frame #11: 0x37a1e5a2 GraphicsServices`_PurpleEventCallback + 590
    frame #12: 0x37a1e1d2 GraphicsServices`PurpleEventCallback + 34
    frame #13: 0x33ef9172 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 34
    frame #14: 0x33ef9116 CoreFoundation`__CFRunLoopDoSource1 + 138
    frame #15: 0x33ef7f98 CoreFoundation`__CFRunLoopRun + 1384
    frame #16: 0x33e6aebc CoreFoundation`CFRunLoopRunSpecific + 356
    frame #17: 0x33e6ad48 CoreFoundation`CFRunLoopRunInMode + 104
    frame #18: 0x35d83484 UIKit`-[UIApplication _run] + 668
    frame #19: 0x35d80300 UIKit`UIApplicationMain + 1120
    frame #20: 0x000b93bc test`main(argc=1, argv=0x2fd51d30) + 116 at main.m:16
    frame #21: 0x3bfd9b20 libdyld.dylib`start + 4

EDIT 2:

Greg Clayton dans le XCode 5 se bloque lors de l'exécution de l'application sur l'appareil suggère de suivre

Others have seen this issue.
A few things to try:
1 - Reboot your device and try again. The theory is an old developer disk image is already mounted and won't be unmounted until you reboot.
2 - Re-install the OS on the device

Hopefully #1 fixes your issue. Others have done #2 and had their issue fixed, but hopefully it doesn't require an OS re-install.

J'ai fait les deux et ça n'a pas aidé.

J'ai essayé d'utiliser un autre appareil et cela a fait une différence. Des exceptions sont toujours là si j'utilise l'iPod Touch avec iOS 6.1 mais l'iPad avec iOS 7.0.2 fonctionne très bien.

Il semble donc que le problème soit lié à la version iOS installée sur l'appareil. Je ne sais toujours pas quoi faire pour y remédier.

EDIT 3:

Ma version des outils de ligne de commande correspond à ma version de Xcode (je n'ai en fait qu'une seule version des outils de ligne de commande).

Le problème n'est probablement pas lié au débogage du code. Il se bloque avec la nouvelle application Single View créée par Xcode. Et il se bloque lorsque vous passez sur un code trivial:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

Je ai demandé sur Apple Forum des développeurs et obtenu la réponse suivante de Jason Molenda:

Nous suivons un bug qui ressemble à ce que vous voyez ici. Il s'agit d'un problème de synchronisation subtil qui nécessite une machine hôte légèrement plus lente ou un périphérique légèrement plus lent pour frapper. C'est principalement l'iPhone 4 et similaire qui verra cela avec iOS 7. Avec iOS 6, les appareils iPhone 4 et iPhone 3GS sont les plus susceptibles d'en faire l'expérience. ... Ce problème ne se produira qu'avec Xcode 5.0.1.

Il semble donc que ce soit un bug dans Xcode.

32
Bobrovsky

Ok, c'est définitivement un bug dans Xcode 5.0.1.

Ceci est confirmé par Jason Molenda sur Apple Developer Forum . La seule solution de contournement pour l'instant est d'utiliser ancienne version de Xcode et l'ancienne version de Mac OS X car Xcode 5 nécessite OS X 10.8.4.

Il n'y a pas d'ETA annoncée pour un correctif de ce problème. Question directe sur ETA sur Apple Developer Forum est laissé sans réponse.

MISE À JOUR 06-Nov-2013:

Aujourd'hui, une version préliminaire de Xcode 5.0.2 est devenue disponible sur developer.Apple.com . Cette version corrige (entre autres) le problème suivant:

Le débogage d'une application sur un appareil exécutant iOS 6.x provoque le blocage de l'application avec EXC_BAD_ACCESS. Cela a été résolu. (15310896)

J'ai installé la nouvelle version et le problème a bel et bien disparu. Maintenant, je peux à nouveau déboguer des applications sur mes appareils 6.x.

Jason Molenda dans thread sur Apple Developer Forum a déclaré:

On me dit que vous pouvez soumettre des applications à l'App Store avec cette graine Xcode 5.0.2.

23
Bobrovsky

Je confirme que j'ai exactement le même bug. Mon application a bien fonctionné. Après la mise à niveau vers Xcode 5 et le code Mavericks, je ne peux pas passer par-dessus certaines lignes car je reçois EXC_BAD_ACCESS.

Je dois donc me souvenir des lignes que je ne peux pas passer avec Step Over et mettre un point d'arrêt après ces lignes ou utiliser Continue to Line pour sauter par-dessus ces lignes problématiques.

PS

Téléchargé Xcode 5.0.2 GM seed et le débogage est bien meilleur. Jusqu'à présent, j'ai passé 30 minutes avec le nouveau Xcode.

3
Max

Veuillez vous connecter au site du développeur et télécharger le Xcode 5.0.2 GM seed , il a corrigé ce bogue.
Voir notes de version .

Mise à jour du 12 novembre 2013
Xcode 5.0.2 est sorti, vous pouvez le télécharger depuis Dev Center

3
Vincent