2013-10-25 4 views
32

Мое приложение разбивается каждый раз, когда я пытаюсь выполнить вызов. Без отладчика он отлично работает.EXC_BAD_ACCESS (код = 1, адрес = 0x0) при входе в отладчик

Кроме того, когда я запускаю приложение в симуляторе, он отлично работает с отладчиком или без него.

Недавно я обновил свою Mac OS X 10.8 до 10.9 (Mavericks). Перед обновлением проблем не возникало.

Что вызывает проблему и как я могу ее исправить?

Ниже показан обратный след. В моем приложении используется ARC. Я включил зомби и добавил точку останова исключений, но зомби, где обнаружены и контрольная точка исключений, никогда не запускаются.

* 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:

У меня есть последняя версия Xcode 5.0.1 (5A2053).

Я создал новое приложение с нуля и провел его без проблем. Затем я установил точку останова в ViewController's viewDidLoad и попытался перешагнуть. Здесь я получил еще один аварии

* 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:

Грег Клейтон в XCode 5 Crashes while running the app on device предлагает следующее

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. 

я как и это не помогло.

Я попытался использовать другое устройство, и это имело значение. Исключения все еще существуют, если я использую iPod Touch с iOS 6.1, но iPad с iOS 7.0.2 отлично работает.

Итак, похоже, что проблема связана с версией iOS, установленной на устройстве. Я все еще не уверен, что делать, чтобы исправить это.

EDIT 3:

Моя Инструменты командной строки версия соответствует моей версии Xcode (у меня есть только одна версия утилиты командной строки, на самом деле).

Проблемы, вероятно, не связаны с отлаживаемым кодом. Он выходит из строя с недавно созданным приложением Single View, созданным Xcode. И он падает, когда переступая через тривиальный код:

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

Я have asked на Apple, Developer Forum и получили следующий ответ от Джейсона Molenda:

Мы отслеживание ошибки, которая звучит как то, что вы видите Вот. Это тонкая проблема с синхронизацией, для которой требуется несколько более медленная хост-машина или немного более медленное устройство для удара. Это в первую очередь iPhone 4 и аналогичный , который увидит это с iOS 7. С iOS 6, iPhone 4 и iPhone 3GS устройства, скорее всего, испытают это. ... Эта проблема будет только произойдет с Xcode 5.0.1.

Итак, похоже, что это ошибка в Xcode.

+0

Вы обновили до последней версии Xcode, а? – DarkDust

+0

@DarkDust да, я. – Bobrovsky

+1

Думаю, у вас будет больше шансов получить ответ на форумах разработчиков Apple, иногда инженеры Apple могут помочь. Я сомневаюсь, что нормальные разработчики помогут в решении этой проблемы. – DarkDust

ответ

23

Хорошо, это определенно ошибка в Xcode 5.0.1.

Это подтверждается Jason Molenda on Apple Developer Forum. Единственным обходным решением на данный момент является использование older version of Xcode и более старой версии Mac OS X, поскольку Xcode 5 требует OS X 10.8.4.

Eaton не сообщил об исправлении этой проблемы. Прямой вопрос об ETA на форуме разработчиков Apple остается без ответа.

UPDATE 06-ноября-2013:

Сегодня пре-релиз версии Xcode 5.0.2 стал доступен на developer.apple.com. Эта версия исправляет (среди прочего) следующая проблема:

Отладка приложения на устройстве под управлением IOS 6.x вызывает к сбою приложения с EXC_BAD_ACCESS. Это было разрешено. (15310896)

Я установил новую версию, и проблема действительно исчезла. Теперь я снова могу отлаживать приложения на своих устройствах 6.x.

Джейсон Molenda в thread on Apple Developer Forum сказал:

Я сказал вы можете представить приложения в магазине приложений с этим Xcode 5.0.2 семян.

+2

Это исправлено в последнем выпуске семпла Xcode (5.0.2). «Отладка приложения на устройстве под управлением iOS 6.x приводит к сбою приложения с EXC_BAD_ACCESS. Это было разрешено. (15310896)" – Jameo

3

Я подтверждаю, что у меня точно такая же ошибка. Мое приложение отлично работало. После обновления до Xcode 5 и кода Mavericks, но когда я отлаживаю, я не могу выполнить над некоторыми строками, поскольку получаю EXC_BAD_ACCESS.

Поэтому я должен помнить строки, которые я не могу передать с помощью Step Over и поставить точку останова после этих строк или использовать Continue to Line, чтобы перепрыгнуть через эти проблемные линии.

PS

Скачано Xcode 5.0.2 GM seed и отладка намного лучше. До сих пор я провел 30 минут с новым Xcode.

3

Пожалуйста, зарегистрируйтесь на сайте разработчика и загрузите Xcode 5.0.2 GM seed, он исправил эту ошибку.
См. release notes.

Обновление 12-Nov-2013
Xcode 5.0.2 выпустила, вы можете загрузить его с Dev Center

Смежные вопросы