Pertanyaan EXC_BAD_ACCESS (kode = 1, alamat = 0x0) ketika melangkah di debugger


Aplikasi saya lumpuh setiap kali saya mencoba untuk melangkahi panggilan. Tanpa debugger, ini berfungsi dengan baik.

Juga, ketika saya menjalankan aplikasi di simulator itu woks baik dengan atau tanpa debugger.

Baru-baru ini saya memperbarui Mac OS X 10.8 hingga 10.9 (Mavericks). Tidak ada masalah sebelum peningkatan.

Apa yang menyebabkan masalah dan bagaimana cara memperbaikinya?

Di bawah ini adalah jejak belakang. Aplikasi saya menggunakan ARC. Saya telah mengaktifkan zombi dan menambahkan breakpoint pengecualian tetapi tidak ada zombies di mana terdeteksi dan pengecualian breakpoint tidak pernah dipicu.

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

Saya memiliki Xcode Versi 5.0.1 terbaru (5A2053).

Saya telah membuat aplikasi baru dari awal dan menjalankannya tanpa masalah. Lalu saya menaruh breakpoint di ViewController's viewDidLoad dan mencoba melangkah. Di sini saya mendapat kecelakaan lain

* 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 dalam Xcode 5 Crash saat menjalankan aplikasi di perangkat menyarankan berikut

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.

Saya melakukan keduanya dan itu tidak membantu.

Saya mencoba menggunakan perangkat lain dan itu membuat perbedaan. Pengecualian masih ada jika saya menggunakan iPod Touch dengan iOS 6.1 tetapi iPad dengan iOS 7.0.2 berfungsi dengan baik.

Jadi, sepertinya masalahnya terkait dengan versi iOS yang dipasang di perangkat. Saya masih tidak yakin apa yang harus dilakukan untuk memperbaikinya.

EDIT 3:

Versi Command Line Tools saya cocok dengan versi Xcode saya (saya hanya memiliki satu versi Command Line Tools, sebenarnya).

Masalahnya mungkin tidak terkait dengan kode yang sedang di-debug. Ini crash dengan Aplikasi Tampilan Tunggal yang baru dibuat oleh Xcode. Dan crash ketika melangkah di atas kode sepele:

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

saya sudah bertanya di Apple Developer Forum dan mendapat tanggapan berikut dari Jason Molenda:

Kami melacak bug yang terdengar seperti apa yang Anda lihat di sini. ini   masalah waktu halus yang membutuhkan mesin host yang sedikit lebih lambat atau   perangkat yang sedikit lebih lambat untuk dipukul. Ini terutama iPhone 4 dan sejenisnya   yang akan melihat ini dengan iOS 7. Dengan iOS 6, iPhone 4 dan iPhone 3GS   perangkat kemungkinan besar akan mengalaminya. ... Masalah ini hanya akan terjadi   terjadi dengan Xcode 5.0.1.

Jadi, sepertinya itu bug di Xcode.


32
2017-10-25 06:50


asal


Jawaban:


Oke, ini jelas bug di Xcode 5.0.1.

Ini dikonfirmasi oleh Jason Molenda di Forum Pengembang Apple. Satu-satunya solusi untuk saat ini adalah menggunakan versi lama Xcode dan versi lama Mac OS X karena Xcode 5 memerlukan OS X 10.8.4.

Tidak ada ETA yang diumumkan untuk memperbaiki masalah ini. Pertanyaan langsung tentang ETA di Forum Pengembang Apple dibiarkan tanpa jawaban.

UPDATE 06-Nov-2013:

Hari ini versi pra-rilis Xcode 5.0.2 menjadi tersedia di developer.apple.com. Versi ini memperbaiki (antara lain) masalah berikut:

Debug aplikasi pada perangkat yang menjalankan iOS 6.x menyebabkan   aplikasi macet dengan EXC_BAD_ACCESS. Ini telah diselesaikan.   (15310896)

Saya telah menginstal versi baru dan masalah ini benar-benar hilang. Sekarang saya dapat men-debug aplikasi di perangkat 6.x saya lagi.

Jason Molenda masuk utas di Forum Pengembang Apple berkata:

Saya diberitahu Anda dapat mengirimkan aplikasi ke app store dengan Xcode 5.0.2 ini   benih.


23
2017-10-31 05:00



Saya mengonfirmasi bahwa saya memiliki bug yang sama persis. Aplikasi saya berfungsi dengan baik. Setelah melakukan upgrade ke kode Xcode 5 dan Mavericks, tetapi ketika saya melakukan debug, saya tidak bisa Melangkahi garis tertentu ketika saya mendapatkan EXC_BAD_ACCESS.

Jadi saya harus mengingat garis yang tidak bisa saya lewati dengan Step Over dan menempatkan titik istirahat setelah garis-garis ini atau menggunakan Lanjutkan ke Garis untuk melompati garis-garis bermasalah ini.

PS

Didownload Xcode 5.0.2 GM seed dan debugging jauh lebih baik. Saya menghabiskan 30 menit dengan Xcode baru sejauh ini.


3
2017-11-01 17:34



Silakan masuk ke situs pengembang dan unduh Xcode 5.0.2 Benih GM, memperbaiki bug ini.
Lihat lepaskan catatan.

Perbarui 12-Nov-2013
Xcode 5.0.2 telah dirilis, Anda dapat mengunduhnya dari Dev Center


3
2017-11-06 05:38