Kesme noktalarım neden çalışmıyor?


112

Kesme noktalarım var ama Xcode bunları yok sayıyor gibi görünüyor.


2
ÜrünTemiz bana yardımcı oldu
Alexander Bekert


Yeniden çalışmaları için bilgisayarımı tam olarak yeniden başlatmak zorunda kaldım ve şimdi süper buggy oluyorlar. Xcode 10.2.1 kullanıyorum.
lamacorn

2
Xcode 11, Çalışmayan Xcode'u Yeniden Başlatın ve Temizleyin, Çalışmayan Mac'i Yeniden Başlatın. Cihazdaki uygulamayı silin ve bu sorunu yeniden oluşturun. Umarım bu birine yardım eder
Randall Wang

Yanıtlar:


148

Her şeyden önce, KAPAT diyen önceki insanlara% 100 katılıyorum Load Symbols Lazily.

Eklemem gereken iki şey daha var.

(İlk önerim apaçık geliyor ama birisi bunu bana ilk önerdiğinde tepkim şu satırlarda oldu: "hadi, lütfen, gerçekten daha iyisini bilemeyeceğimi düşünüyorsun ...... oh.")

  1. "Etkin Yapı Yapılandırması" nı yanlışlıkla "Yayınla" olarak ayarlamadığınızdan emin olun.

  2. Projenizin grafik ağaç görüntüsündeki "Hedefler" altında, Hedefinize sağ tıklayın ve "Bilgi Al" işlemini yapın. "Hata Ayıklama Sembolleri Oluştur" (veya benzeri) adlı bir özelliği arayın ve bunun KONTROL EDİLDİĞİNDEN (aka AÇIK) emin olun. Ayrıca, "Hata Ayıklama Bilgi Formatı" adlı bir özelliği bulmayı (ayrıca Hedef >> Bilgi Al bölümünde) ve bunu "Dwarf with dsym file" olarak ayarlamayı deneyebilirsiniz.

Hedef >> Bilgi Al altında sizi etkileyebilecek bir dizi başka özellik vardır. Kodu optimize etmek veya sıkıştırmak gibi şeyleri arayın ve bunları KAPATIN (bir hata ayıklama modunda çalıştığınızı varsayıyorum, bu yüzden bu kötü bir tavsiye değildir). Ayrıca, sembollerin çıkarılması gibi şeyleri arayın ve bunun da KAPALI olduğundan emin olun. Örneğin, "Bağlı Ürünü Çıkar", Hata Ayıklama hedefi için "Hayır" olarak ayarlanmalıdır.


8
XCode 4.5.2'de bu sorunu yaşadım ve "Bağlantı zamanı optimizasyonunu" etkinleştirdiğim için ortaya çıktı, bu yüzden kontrol
etmem

6
Yapı Yapılandırmasını değiştirmek için, Çalıştır - Bilgi altında Ürün -> Şema -> Şemayı Düzenle'ye gidin. Benim için işe yarayan, o menüdeki "Hata Ayıklama Yürütülebilir" i kontrol etmekti.
Jeffrey Güneş

2
Bison sözdiziminin çalışmayan kesme noktalarının başka bir (egzotik) nedeni olduğunu eklemek için en iyi yanıtı kaçırmak (aşağıdaki cevabıma bakın). Umarım bu problemi olan bir sonraki kişiye biraz zaman kazandırır.
Dave

2
⌘Y ile yanlışlıkla kesme noktası etkinleştirmesini değiştirmek de çok kolaydır. O yüzden buna dikkat edin çocuklar.
dsgrnt

1
1 numaralı noktayı denedim ve benim için işe yaradı. Bana gerçekten yardımcı oldu. Upvoted.
NSPratik

49

Xcode 7'de benim için işe yarayan şuydu:

1) Hedef -> şema -> Çalıştır'ın Hata Ayıklama modunda olduğundan emin olun (Yayınlandı)

2) "Yürütülebilir dosyada hata ayıkla" seçeneğini işaretlediğinizden emin olun, aşağıya bakın:

görüntü açıklamasını buraya girin


4
Tam olarak bana olan buydu, onay kutusu işaretlenmemişti
anoop4real

Benim için aynı sorun. Bu seçeneğin varsayılan olarak etkinleştirilmesi gerekmez mi (XCode 8.3)? Yine de hata ayıklamaya istekli, tüm geliştiriciler olmamız gerekmiyor mu?
dgmz

Xcode 9.3'te benim için çalıştı, 1. seçenek için başka bir resim sağlarsanız harika olur.
Kazi Abdullah Al Mamun

24

Xcode Hata Ayıklama tercihlerine gidin. "Sembolleri tembel yükle" seçeneğinin seçili OLMADIĞINDAN emin olun.


7
Maalesef Xcode 6'da "hata ayıklama" tercihleri ​​yoktur ve belgelerde "tembel olarak" görünmez. İç çekmek.
Oscar

1
peki, şimdi XCode 6
RNA

14

Ben de aynı sorunu yaşıyordum (tekrar). "Sembolleri tembel olarak yükle" yi üç kez kontrol ettikten ve bilgi üretme bayraklarını ayıklayıp hata ayıkladıktan sonra aşağıdakileri yaptım:

  1. Xcode'dan çık
  2. bir terminal penceresi açın ve proje dizinine cd yapın
  3. .xcodeproj dizinine cd
  4. .pbxproj dosyası dışındaki her şeyi silin (frank.mode1v3 ve frank.pbxuser vardı)

Aynı görevi bulucuda .xcodeproj paketine sağ / seçenek tıklayarak ve "Paket İçeriğini Göster" i seçerek de gerçekleştirebilirsiniz.

Xcode'u yeniden başlattığımda, tüm pencerelerim varsayılan konumlara, vb. Sıfırlandı, ancak kesme noktaları çalıştı!


2
Bu çalışır, ancak tüm tercihlerinizi siler ... Bu, başka hiçbir şey işe yaramadığında yapılmalıdır.
Rémi Doolaeghe

benim için çalıştı, teşekkürler. Xcode'un neden bu kadar berbat olduğunu merak ediyorum. Xcode, Apple tarafından yazılmış en kötü yazılımdır.
Ördek

Vay be, bu 5 yaşında. Hala çalıştığına ve hala bir sorun olduğuna inanmak zor!
Frank Szczerba

Benim için çalışmadı. Xcode 6.01 çalıştırıyorum. Şimdi oluşturduğumda, birden çok eksik dosya hatası alıyorum. Çözmek için kodumu geri alıyorum.
Native_Mobile_Arch_Dev

Yalnızca Xcode'u yeniden başlatmak zorunda kaldım, benim durumum xcode kullanıcı arabirimi durum verilerini işlerken git sürümlemesinden kaynaklanıyordu.
Juan Boero

13

Xcode 4.x için: Ürüne Git> İş Akışında Hata Ayıkla ve "Hata Ayıklama Sırasında Demontajı Göster" seçeneğinin işaretini kaldırın.

Xcode 5.x için Goto Debug> Debug Workflow ve "Show Disassembly When Debugging" seçeneğinin işaretini kaldırın.


11

Diğer sebep

Set DeploymentPostprocessingBuildSettings içinde NO - detaylar burada

Kısacası -

Bu ayarın etkinleştirilmesi, ikili dosyaların çıkarılması gerektiğini ve dosya modu, sahip ve grup bilgilerinin standart değerlere ayarlanması gerektiğini belirtir. [DEPLOYMENT_POSTPROCESSING]

görüntü açıklamasını buraya girin


XCode 7'ye güncelledikten sonra, Bu ayar bir şekilde YESsadece benim subprojectiçindeydi ve sonra kesme noktaları çalışmadı subprojects. Ve ayarlandıktan sonra NOmükemmeldi!
Maheswaran Ravisankar

Bu benim için ancak projeyi temizledikten sonra işe yaradı, böylece tam bir yeniden inşa gerçekleşecek.
koştu

8

Bu gönderiye bakın: Kesme noktaları Xcode'da çalışmıyor mu? . "Hata Ayıkla" yerine "Çalıştır" seçeneğine basıyor olabilirsiniz, bu durumda programınız gdb'nin yardımıyla çalışmıyordur ve bu durumda kesme noktalarının çalışmasını bekleyemezsiniz!


Xcode 6.4'te, artık yalnızca bir Çalıştır düğmesi vardır ve bir hata ayıklama yapılandırması çalıştırıp çalıştırmayacağı, seçili olan şema ayarlarına bağlıdır.
user2067021

6

Bunun olası çözümlerinden biri şu olabilir: Ürün> Şema> Şemayı düzenle> ..'ye gidin. Çalıştır> bilgi> Yürütülebilir "Hata ayıklama yürütülebilir" kontrol edin.


Bu, 2 gün kafamı çarptıktan sonra benim için çalıştı.
Dileep Perla

yardımcı olmasına sevindim.
Soropromo

5

Bu beni yarım gün boyunca Xcode 9'da tuttu. Basit bir hata ayıklama ayarı haline geldi.

Debug> Debug Workflow'a gidin ve 'Always Show Disassembly' seçeneğinin kapalı olduğundan emin olun. Bu kadar basit. :(


Bu benim için çalışıyor, teşekkürler
Md.Harish-Uz-Jaman Mridha Raju

5

XCode 9.4.1 ile benim için çözüm (herhangi bir kesme noktasında durmadı):

Derleme Hedefi altında -> Derleme Ayarları -> Optimizasyon Düzeyi: "Hız için optimize et" -> "Optimizasyon yok" arasında değiştirildi (şimdi daha yavaş ama çalışıyor)


5

Benim durumumda çözen şey oldukça basitti, Xcode - Product - Clean Build Folder ve ardından Product - Run (Play Xcode düğmesi değil).

(Xcode oynatma düğmesine uzun basıldığında birim testine geçtikten sonra Xcode 11 -beta 4'te sorun yaşandı)


4

Aynı problemle bu sayfaya geldi (Xcode 6'daki C kodu kesme noktalarında durmuyor) ve yukarıdaki çözümlerden hiçbiri işe yaramadı (proje pratik olarak kutudan çıktı, ayarlar açısından, hata ayıklayıcı ayarlarından herhangi birinin şansı çok azdı. yanlış değere ayarlanmalıdır) ...

Sorunu azaltmak için epey zaman harcadıktan sonra, sonunda suçluyu buldum (kodum için):

Xcode (/ LLVM), Bison tarzı #lineönişlemci komutlarını sevmez .

Bunları kaldırmak sorunu çözdü (hata ayıklayıcı, kesme noktalarımda durdu).


4

Xcode 4 için:

go Product -> Debug ->  Activate Breakpoints

Teşekkürler! bu yardımcı oldu. Bunu kendim yayınlayacaktım, görünüşe göre bir şekilde yanlışlıkla ⌘Y ittim.
Ovi

2

Xcode (2.4.1) 'de kesme noktaları ile ilgili birçok sorunum var. Yalnızca diğer projeleri içeren bir proje kullanıyorum (Visual Studio'daki bir Çözüm gibi). Bazen, başlangıç ​​projesinde en az bir kesme noktası ayarlanmadıkça (yani kodum için giriş noktasını içeren) hiç çalışmadığını görüyorum. Yalnızca kesme noktaları "alt düzey" projelerdeyse, bunlar yok sayılır.

Ayrıca, kesme noktasının açık olduğu kaynak satırını içeren projedeyken kesme noktasında hareket ederseniz, Xcode yalnızca kesme noktası işlemlerini doğru şekilde işliyor gibi görünüyor.

Kesme noktalarını başka bir proje aracılığıyla silmeyi veya devre dışı bırakmayı denersem, hata ayıklayıcı sahip olduğunu belirtmesine rağmen eylem bazen etkili olmaz. Bu yüzden kendimi devre dışı bırakılan kesme noktalarında veya daha önce kaldırmış olduğum (artık görünmez) bir kesme noktasında bulacağım.


2

Kesme noktalarım işe yaramadı ve ardından yeniden çalışmasını sağlamak için Tüm Hedefleri Oluştur / Temizle işlemini yaptım.


2

Sorunun cihaz sürümleri ile Xcode arasındaki uyumsuzluk olabileceğini düşünüyorum. İOS 5.0.1 çalıştıran iPhone 4S cihazımda hata ayıklamaya çalışırken bu sorunu yaşıyorum. Hala Xcode 3.2.5 kullanıyorum. Düzenleyici penceresinde "bu cihazı geliştirme için kullan" seçeneğini belirleyerek el cihazından sembolleri aldım. Ancak bu telefon kesme noktasını reddediyor. Eski 3GS irade kesme noktası , aynı Xcode projesi, aynı ayarlar ... sadece farklı cihaz ve iOS 4.0 çalıştırıyor. Sanırım bu 3.2.5'teki bir Xcode hatası, çünkü bende semboller var. Şimdiye kadar burada yayınlanan tüm çözümleri denedikten sonra, sorunumun çözümünün devam edip XCode 4'e yükseltmek olduğuna karar verdim. Temel SDK'nız en azından hata ayıklayacağınız sistem kadar yüksek değilse, belki de etkili bir şekilde hata ayıklayamazsınız. Belki bu açıktır - kimse onaylayabilir mi?

Düzenleme: Bunun doğru olduğunu onaylayabildiğimde güncelleme yapacağım.



2

XCode 6.3.1'de de bana aynı şey oldu. Bunu şu şekilde düzeltmeyi başardım:

  • Gidiyor için Görünüm-> Navigators-> Show ayıklama yönlendirmek
  • Proje köküne sağ tıklayın -> Kesme Noktalarını Taşı (Kullanıcı seçeneği seçiliyse)
  • (Ayrıca gerekli olup olmadığından emin olmasam da kesme noktalarını paylaş seçeneğini de seçtim).

Bu değişikliği yaptıktan sonra, Kesme noktalarını taşı seçeneklerini projeye geri getirdim ve Paylaşım kesme noktalarının seçimini kaldırdım. seçeneğinin ve hala çalışıyor.

Nedenini tam olarak bilmiyorum ama bu benim kesme noktalarımı geri getiriyor.


Teşekkür ederim! Bu aynı zamanda hata ayıklama günlüklerinin yavaş yanıt verme hızını da düzeltti
Jim75

2

Bunun için ve ayrıca Xcode 6 ve üstü için kesme noktası durum düğmesinin etkinleştirildiğinden emin olun (mavi ok benzeri düğme):

görüntü açıklamasını buraya girin


1

Xcode 4'te

- 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

1

Sorunu buldum. Bir şekilde XCode'umda " Hata ayıklama sırasında Demontajı Göster " etkinleştirildi ve bu da bu sorunu yarattı. Devre dışı bıraktığımda, tüm hata ayıklayıcım kaynak kodumda durdu.

Bunu şu altında bulabilirsiniz: Product->Debug Workflow->Show Disassemblyhata ayıklarken.


1

Kırılma noktalarını açılır menüden Etkinleştirebilir / Devre Dışı Bırakabilirsiniz görüntü açıklamasını buraya girin


1

Her şey başarısız olursa, bir kesme noktası yerine aşağıdaki işlevi çağırabilirsiniz:

void BreakPoint(void) {
    int i=1;
    #if !__OPTIMIZE__
    printf("Code is waiting; hit pause to see.\n");
    while(i);
    #endif
}

Devam etmek için, i'yi manuel olarak sıfıra ayarlayın, ardından devam ettir düğmesine basın.


1

Yukarıdakilerin hepsini denedim, ancak benim için hata ayıklama kesme noktalarını yalnızca bir kez devre dışı bıraktım ve sonra bunları etkinleştirmek işe yaradı.


@IshantMrinal Bu neden alakalı değil? Kullanıcı, senaryosunda işe yarayan bir cevap verdi.
Noel Widmer

0

Kırılma noktanızı ayarlarken, sağ tıklayın ve kesme noktasının nasıl işlendiğine dair birkaç seçenek almalısınız (değişkenleri kaydet ve devam et, yürütmeyi duraklat, vb.)

Ayrıca, hata ayıklama tercihlerinde "Sembolleri tembel olarak Yükle" seçeneğinin seçilmediğinden emin olun.

(Xcode 3.1 için geçerlidir, geçmiş / gelecek sürümlerden emin değil)


0

Ayrıca, uygulamanın AppStore dağıtımının cihaza da yüklenmediğinden emin olun.


0

Kontrol edilecek başka bir şey de, hata ayıklama modunuz için bir "Yetkilendirmeler" plist dosyanız varsa (muhtemelen Anahtar Zinciri ile bir şeyler yaptığınız için), plist dosyasının "get-task-allow" = YES satırına sahip olduğundan emin olun. Bu olmadan, hata ayıklama ve günlük kaydı bozulur.


0

Xcode'da kesme noktaları için 3 durum var gibi görünüyor. Onlara tıklarsanız farklı ayarlardan geçerler. Koyu mavi etkinleştirildi, gri devre dışı bırakıldı ve bazen koyu mavi renge gitmesi için kesme noktasına tekrar tıklamamı gerektiren soluk bir mavi gördüm.

Bunun dışında, çalıştırma komutu ile değil hata ayıklama komutuyla başlattığınızdan emin olun. Bunu, seçenek + command + return veya çalıştır menüsünden Git (hata ayıklama) seçeneğine basarak yapabilirsiniz.


0

Xcode 3.2.3 SDK 4.1'e sahibim. Kesme noktaları rastgele başarısız oluyor. Yapıyı temizlerseniz ve yapı altındaki dokunma komutunu kullanırsanız tekrar çalıştıklarını buldum.


0

İşte karşılaştığım belirsiz bir tane: eğer paylaşılan bir kitaplık (veya bir eklenti) üzerinde çalışıyorsanız, kesme noktalarınız başlangıçta sarıya dönecek ve bu da klavyenizi hayal kırıklığına uğratmanıza ve hata ayıklama sürecini sonlandırmanıza neden olabilir. Yapma bunu! Uygulama kitaplığı yükleyene kadar semboller yüklenmez ve bu noktada kesme noktaları geçerli olur. Bu sorunla bir tarayıcı eklentisiyle karşılaştım ... Eklentimi başlatan bir sayfaya göz atana kadar BP'ler devre dışı bırakıldı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.