Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

EXC_BAD_ACCESS (code=1, address=0x0) when stepping in debugger

My application crashes each and every time I try to step over a call. Without debugger it works fine.

Also, when I run the app in simulator it woks fine with or without debugger.

Recently I upgraded my Mac OS X 10.8 to 10.9 (Mavericks). There were no issues before the upgrade.

What causes the issue and how could I fix it?

Below is the back trace. My app uses ARC. I have enabled zombies and added exception breakpoint but no zombies where detected and exception breakpoint is never triggered.

    * 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

EDIT:

I have latest Xcode Version 5.0.1 (5A2053).

I have created new app from scratch and ran it without issues. Then I put a breakpoint in ViewController's viewDidLoad and tried to step over. Here I got another 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 in the XCode 5 Crashes while running the app on device suggests following

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.

I did both and it didn't help.

I tried to use another device and it made a difference. Exceptions are still there if I use iPod Touch with iOS 6.1 but iPad with iOS 7.0.2 works fine.

So, it looks like the issue is related to the iOS version installed on the device. I am still not sure what to do to fix it.

EDIT 3:

My Command Line Tools version matches my Xcode version (I have only one version of Command Line Tools, actually).

The issues is probably not related to the code being debugged. It crashes with newly created Single View Application created by Xcode. And it crashes when stepping over trivial code:

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

I have asked on Apple Developer Forum and got following response from Jason Molenda:

We're tracking a bug that sounds like what you're seeing here. It is a subtle timing issue that requires a slightly slower host machine or a slightly slower device to hit. It is primarily iPhone 4 and similar that will see this with iOS 7. With iOS 6, iPhone 4 and iPhone 3GS devices are most likely to experience it. ... This issue will only happen with Xcode 5.0.1.

So, it seems like it's a bug in Xcode.

like image 555
Bobrovsky Avatar asked Oct 25 '13 06:10

Bobrovsky


3 Answers

Ok, this is definitely a bug in Xcode 5.0.1.

This is confirmed by Jason Molenda on Apple Developer Forum. The only workaround for now is to use older version of Xcode and the older version of Mac OS X because Xcode 5 requires OS X 10.8.4.

There is no announced ETA for a fix for this issue. Direct question about ETA on Apple Developer Forum is left without answer.

UPDATE 06-Nov-2013:

Today a pre-release version of Xcode 5.0.2 became available on developer.apple.com. This version fixes (among other things) the following issue:

Debugging an application on a device running iOS 6.x causes the application to crash with EXC_BAD_ACCESS.  This has been resolved. (15310896)

I have installed the new version and the issue is indeed gone. Now I am able to debug apps on my 6.x devices again.

Jason Molenda in thread on Apple Developer Forum said:

I'm told you can submit apps to the app store with this Xcode 5.0.2 seed.

like image 74
Bobrovsky Avatar answered Nov 05 '22 21:11

Bobrovsky


I confirm I have exactly same bug. My App worked fine. After upgrade to Xcode 5 and Mavericks code work but when I debug I can't Step Over certain lines as I get EXC_BAD_ACCESS.

So I have to remember lines that I can't pass with Step Over and put break point after these lines or use Continue to Line to jump over these problematic lines.

PS

Downloaded Xcode 5.0.2 GM seed and debugging is much better. I spent 30 minutes with new Xcode so far.

like image 28
Max Avatar answered Nov 05 '22 20:11

Max


Please login developer site and download the Xcode 5.0.2 GM seed, it fixed this bug.
See the release notes.

Update 12-Nov-2013
Xcode 5.0.2 has released, you can download it from Dev Center

like image 3
Vincent Sit Avatar answered Nov 05 '22 20:11

Vincent Sit