Saya telah menetapkan breakpoint tetapi Xcode tampaknya mengabaikannya.
Saya telah menetapkan breakpoint tetapi Xcode tampaknya mengabaikannya.
Jawaban:
Pertama-tama, saya setuju 100% dengan orang-orang sebelumnya yang mengatakan MATIKAN Load Symbols Lazily
.
Saya memiliki dua hal lagi untuk ditambahkan.
(Saran pertama saya terdengar jelas, tetapi pertama kali seseorang menyarankannya kepada saya, reaksi saya berjalan seperti ini: "ayolah, tolong, Anda benar-benar berpikir saya tidak akan tahu lebih baik ...... oh.")
Pastikan Anda tidak secara tidak sengaja menyetel "Konfigurasi Build Aktif" ke "Rilis".
Di bawah "Target" di tampilan pohon grafis proyek Anda, klik kanan pada Target Anda dan lakukan "Dapatkan Info." Cari properti bernama "Generate Debug Symbols" (atau serupa) dan pastikan ini sudah DIPERIKSA (alias AKTIF). Selain itu, Anda dapat mencoba mencari (juga di Target >> Dapatkan Info) properti yang disebut "Debug Information Format" dan menyetelnya ke "Dwarf dengan file dsym".
Ada sejumlah properti lain di bawah Target >> Dapatkan Info yang mungkin memengaruhi Anda. Carilah hal-hal seperti mengoptimalkan atau mengompresi kode dan MENONAKTIFKAN hal-hal itu (saya menganggap Anda bekerja dalam mode debug, jadi ini bukan saran yang buruk). Juga, cari hal-hal seperti simbol pengupasan dan pastikan itu juga MATI. Misalnya, "Strip Linked Product" harus disetel ke "No" untuk target Debug.
Di Xcode 7, yang berhasil untuk saya adalah:
1) Pastikan target -> skema -> Run - dalam mode Debug (telah Rilis)
2) Pastikan untuk memeriksa opsi "Debug executable" lihat di bawah:
Saya baru saja mengalami masalah yang sama (lagi). Setelah memeriksa tiga kali "Muat simbol dengan malas" dan menghapus serta men-debug tanda pembuatan info, saya melakukan hal berikut:
Anda dapat menyelesaikan tugas yang sama di finder dengan mengklik kanan / option pada bundel .xcodeproj dan memilih "Show Package Contents".
Ketika saya me-restart Xcode, semua jendela saya telah diatur ulang ke posisi default, dll, tetapi breakpoint berfungsi!
Alasan lain
Setel DeploymentPostprocessing
ke NO di BuildSettings - detailnya di sini
Pendeknya -
Mengaktifkan pengaturan ini menunjukkan bahwa biner harus dihilangkan dan mode file, pemilik, dan informasi grup harus diatur ke nilai standar. [DEPLOYMENT_POSTPROCESSING]
YES
hanya ada di saya subproject
dan kemudian breakpoint tidak berfungsi subprojects
. Dan setelah diatur NO
, itu sempurna!
Lihat posting ini: Breakpoints tidak berfungsi di Xcode? . Anda mungkin menekan "Run" daripada "Debug" dalam hal ini program Anda tidak berjalan dengan bantuan gdb, dalam hal ini Anda tidak dapat mengharapkan breakpoint bekerja!
Salah satu solusi yang mungkin untuk ini bisa .... pergi ke Produk> Skema> Edit skema> .. Di bawah Run> info> Executable centang "Debug executable".
Ini membuat saya di Xcode 9 selama setengah hari yang membuat frustrasi. Itu akhirnya menjadi pengaturan debug sederhana.
Go Debug> Debug Workflow dan pastikan 'Always Show Disassembly' dimatikan. Sederhana seperti itu. :(
Datang ke halaman ini dengan masalah yang sama (kode C di Xcode 6 tidak berhenti di breakpoint) dan tidak ada solusi di atas yang berhasil (proyek ini praktis di luar kotak, pengaturan-bijaksana, begitu sedikit peluang untuk salah satu pengaturan debugger untuk disetel ke nilai yang salah) ...
Setelah membuang beberapa waktu untuk mengurangi masalah, akhirnya saya menemukan pelakunya (untuk kode saya):
Xcode (/ LLVM) tidak menyukai #line
perintah preprocessor gaya Bison .
Menghapusnya memperbaiki masalah (debugger berhenti di breakpoint saya).
Saya punya banyak masalah dengan breakpoint di Xcode (2.4.1). Saya menggunakan proyek yang hanya berisi proyek lain (seperti Solusi di Visual Studio). Saya kadang-kadang menemukan bahwa breakpoint tidak berfungsi sama sekali kecuali ada setidaknya satu breakpoint yang ditetapkan dalam proyek awal (yaitu yang berisi titik masuk untuk kode saya). Jika satu-satunya breakpoint ada di project "level yang lebih rendah", mereka akan diabaikan begitu saja.
Sepertinya Xcode hanya menangani operasi breakpoint dengan benar jika Anda bertindak pada breakpoint saat Anda berada dalam proyek yang berisi baris sumber tempat breakpoint berada.
Jika saya mencoba menghapus atau menonaktifkan breakpoint melalui proyek lain, tindakan tersebut terkadang tidak berpengaruh, meskipun debugger menunjukkannya. Jadi saya akan menemukan diri saya melanggar breakpoint yang dinonaktifkan, atau pada breakpoint (sekarang tidak terlihat) yang saya hapus sebelumnya.
Saya telah membuat breakpoint saya tidak berfungsi dan kemudian selesai Membangun / Membersihkan Semua Target untuk membuatnya berfungsi kembali.
Saya pikir masalahnya mungkin ketidakcocokan antara versi perangkat dan Xcode. Saya mengalami masalah ini saat mencoba men-debug di iPhone 4S saya yang menjalankan iOS 5.0.1. Saya masih menggunakan Xcode 3.2.5. Saya mendapatkan simbol dari handset dengan memilih "gunakan perangkat ini untuk pengembangan" di jendela Organizer. Namun ponsel ini menolak untuk breakpoint. 3GS lama saya akan breakpoint, proyek Xcode yang sama, pengaturan yang sama ... hanya perangkat yang berbeda dan menjalankan iOS 4.0. Saya rasa ini adalah bug Xcode di 3.2.5, karena saya memiliki simbolnya. Setelah mencoba semua solusi yang diposting di sini sejauh ini, saya telah memutuskan solusi untuk masalah saya adalah melanjutkan dan meningkatkan ke XCode 4. Mungkin Anda tidak dapat melakukan debug secara efektif kecuali SDK dasar Anda setidaknya setinggi sistem yang akan di-debug. Mungkin itu sudah jelas - adakah yang bisa memastikan?
Sunting: Saya akan memperbarui ketika saya dapat mengonfirmasi bahwa ini benar.
Menghapus folder Build saya memecahkan masalah bagi saya.
Itu telah terjadi hal yang sama pada saya di XCode 6.3.1. Saya berhasil memperbaikinya dengan:
Setelah melakukan perubahan itu saya mengatur Pindahkan titik putus kembali ke proyek, dan membatalkan pilihan Bagikan titik putus , dan masih berfungsi.
Saya tidak tahu persis mengapa tetapi ini mendapatkan breakpoint saya kembali.
Di Xcode 4
- Product menu > Manage Schemes
- Select the scheme thats having debugging problems (if only one choose that)
- Click Edit button at bottom
- Edit Scheme dialog appears
- in left panel click on Run APPNAME.app
- on Right hand panel make sure youre on INFO tab
- look for drop down DEBUGGER:
- someone had set this to None
- set to LLDB if this is your preferred debugger
- can also change BUILD CONFIGURATION drop down to Debug
- but I have other targets set to AdHoc which debug fine once Debugger is set
Saya menemukan masalahnya. Entah bagaimana, " Tampilkan Pembongkaran saat debugging " diaktifkan di Xcode saya yang menciptakan masalah itu. Ketika saya menonaktifkannya, semua debugger saya berhenti di kode sumber saya.
Anda dapat menemukannya di bawah: Product->Debug Workflow->Show Disassembly
saat debugging.
Jika semuanya gagal, alih-alih breakpoint, Anda bisa memanggil fungsi berikut:
void BreakPoint(void) {
int i=1;
#if !__OPTIMIZE__
printf("Code is waiting; hit pause to see.\n");
while(i);
#endif
}
Untuk melanjutkan, setel i ke nol secara manual, lalu tekan tombol lanjutkan.
Saya mencoba semua hal di atas tetapi bagi saya hanya menonaktifkan breakpoint debugging sekali dan kemudian mengaktifkannya berhasil.
Saat mengatur break point Anda, klik kanan dan Anda akan mendapatkan beberapa opsi tentang bagaimana break point ditangani (log vars dan lanjutkan, jeda eksekusi, dll)
Pastikan juga "Muat Simbol dengan malas" tidak dipilih dalam preferensi debug.
(Berlaku untuk Xcode 3.1, tidak yakin tentang versi sebelumnya / mendatang)
Pastikan juga bahwa distribusi AppStore dari aplikasi juga tidak diinstal di perangkat.
Hal lain yang perlu diperiksa adalah jika Anda memiliki file plist "Entitlements" untuk mode debug Anda (mungkin karena Anda melakukan hal-hal dengan Keychain), pastikan file plist memiliki baris "get-task-allow" = YES. Tanpa itu, debugging dan logging akan rusak.
Tampaknya ada 3 status untuk breakpoint di Xcode. Jika Anda mengkliknya, mereka akan melalui pengaturan yang berbeda. Biru tua diaktifkan, abu-abu dinonaktifkan dan saya kadang-kadang melihat biru pucat yang mengharuskan saya mengklik breakpoint lagi untuk mengubahnya ke warna biru tua.
Selain itu, pastikan Anda meluncurkannya dengan perintah debug, bukan perintah jalankan. Anda dapat melakukannya dengan menekan opsi + command + return, atau opsi Go (debug) dari menu run.
Saya memiliki Xcode 3.2.3 SDK 4.1 Breakpoints akan gagal secara acak. Saya telah menemukan jika Anda membersihkan build dan menggunakan perintah sentuh di bawah build, mereka berfungsi lagi.
Inilah yang tidak jelas yang pernah saya temui: jika Anda bekerja di pustaka bersama (atau plugin), breakpoint Anda akan menjadi kuning saat startup, yang mungkin menyebabkan Anda memalu keyboard dengan frustrasi dan menghentikan proses debug. Nah, jangan lakukan itu! Simbol tidak akan dimuat sampai aplikasi memuat perpustakaan, di mana titik putus akan menjadi valid. Saya mengalami masalah ini dengan plugin browser ... BPs dinonaktifkan sampai saya menjelajahi halaman yang membuat plugin saya.