Ho impostato i punti di interruzione ma Xcode sembra ignorarli.
Prima di tutto, sono d'accordo al 100% con le persone precedenti che hanno detto di disattivare OFF Load Symbols Lazily
.
Ho altre due cose da aggiungere.
(Il mio primo suggerimento sembra ovvio, ma la prima volta che qualcuno me lo ha suggerito, la mia reazione è andata così: "dai, per favore, pensi davvero che non lo saprei meglio ...... oh.")
Assicurati di non aver impostato accidentalmente "Configurazione build attiva" su "Rilascio".
In "Target" nella visualizzazione ad albero grafico del progetto, fai clic con il pulsante destro del mouse su Target e fai "Ottieni informazioni". Cerca una proprietà denominata "Genera simboli di debug" (o simile) e assicurati che sia CONTROLLATA (aka ON). Inoltre, potresti provare a trovare (anche in Target >> Ottieni informazioni) una proprietà chiamata "Formato informazioni debug" e impostarla su "Nano con file dsym".
Ci sono diverse altre proprietà in Target >> Ottieni informazioni che potrebbero interessarti. Cerca cose come l'ottimizzazione o la compressione del codice e disattiva quella roba (suppongo che tu stia lavorando in una modalità di debug, quindi questo non è un cattivo consiglio). Inoltre, cerca cose come simboli di stripping e assicurati che sia anche OFF. Ad esempio, "Rimuovi prodotto collegato" deve essere impostato su "No" per la destinazione di debug.
Vai alle preferenze di debug di Xcode. Assicurati che "Carica simboli pigramente" NON sia selezionato.
Stavo avendo questo stesso problema (di nuovo). Dopo aver verificato tre volte "Carica pigramente i simboli" e messo a nudo i flag di generazione informazioni di debug, ho fatto quanto segue:
Puoi svolgere la stessa attività nel Finder facendo clic con il tasto destro/opzione sul pacchetto .xcodeproj e selezionando "Mostra contenuto pacchetto".
Quando ho riavviato Xcode, tutte le mie finestre erano ripristinate alle posizioni predefinite, ecc., Ma i punti di interruzione funzionavano!
Per Xcode 4.x: Vai a Prodotto> Debug Workflow e deseleziona "Mostra smontaggio durante il debug".
Per Xcode 5.x Vai a Debug> Debug Workflow e deseleziona "Mostra smontaggio durante il debug".
Vedi questo post: Breakpoint non funzionanti in Xcode? . Potresti premere "Esegui" anziché "Debug" nel qual caso il tuo programma non è in esecuzione con l'aiuto di gdb, nel qual caso non puoi aspettarti che i punti di interruzione funzionino!
Un'altra ragione
Impostare DeploymentPostprocessing
su NO in BuildSettings - dettagli qui
In breve -
L'attivazione di questa impostazione indica che i file binari devono essere rimossi e che la modalità file, il proprietario e le informazioni sul gruppo devono essere impostati su valori standard. [DEPLOYMENT_POSTPROCESSING]
Per Xcode 4:
go Product -> Debug -> Activate Breakpoints
È venuto a questa pagina con lo stesso problema (il codice C in Xcode 6 non si fermava ai punti di interruzione) e nessuna delle soluzioni sopra funzionava (il progetto era praticamente pronto all'uso, per quanto riguarda le impostazioni, quindi poche possibilità per qualsiasi impostazione del debugger di essere impostato sul valore errato) ...
Dopo aver perso un bel po 'di tempo a ridurre il problema, ho finalmente capito il colpevole (per il mio codice):
Xcode (/ LLVM) non piace Bison-style #line
comandi preprocessore.
La loro rimozione ha risolto il problema (il debugger si è interrotto ai miei punti di interruzione).
Soluzione per me con XCode 9.4.1 (non si è fermato in nessun punto di interruzione):
Sotto build target -> Impostazioni build -> Livello di ottimizzazione: passato da "Ottimizza per velocità" -> "Nessuna ottimizzazione" (ora è più lento ma funziona)
Questo mi ha fatto in Xcode 9 per mezza giornata frustrante. Alla fine è stata una semplice impostazione di debug.
Vai a Debug> Debug Workflow e assicurati che 'Mostra sempre disassemblaggio' sia disattivato. Semplice come quella. :(
Questo potrebbe essere uno dei possibili motivi per cui ciò accade .... vai su Prodotto> Schema> Modifica schema> .. In Esegui> info> Controllo eseguibile "Esegui debug".
Penso che il problema potrebbe essere l'incompatibilità tra le versioni del dispositivo e Xcode. Ho questo problema quando provo a eseguire il debug sul mio iPhone 4S con iOS 5.0.1. Sto ancora usando Xcode 3.2.5. Ho ricevuto i simboli dal portatile selezionando "usa questo dispositivo per lo sviluppo" nella finestra Organizer. Questo telefono rifiuta comunque il punto di interruzione. Il mio vecchio 3GS sarà breakpoint, stesso progetto Xcode, stesse impostazioni ... solo un dispositivo diverso e funziona con iOS 4.0. Immagino che questo sia un bug Xcode in 3.2.5, dato che ho i simboli. Avendo provato finora tutte le soluzioni pubblicate qui, ho deciso che la soluzione al mio problema è di andare avanti e passare all'XCode 4. Forse non è possibile eseguire il debug in modo efficace a meno che l'SDK di base non sia almeno alto quanto il sistema su cui eseguire il debug. Forse è ovvio: qualcuno può confermare?
Modifica: aggiornerò quando posso confermare che è vero.
L'eliminazione della mia cartella Build ha risolto il problema per me.
Ho molti problemi con i punti di interruzione in Xcode (2.4.1). Uso un progetto che contiene solo altri progetti (come una soluzione in Visual Studio). A volte trovo che i punti di interruzione non funzionino affatto a meno che non ci sia almeno un punto di interruzione impostato nel progetto iniziale (cioè quello che contiene il punto di ingresso per il mio codice). Se gli unici punti di interruzione si trovano in progetti di "livello inferiore", vengono semplicemente ignorati.
Sembra anche che Xcode gestisca correttamente le operazioni di breakpoint solo se si agisce sul breakpoint quando ci si trova nel progetto che contiene la linea di origine su cui si trova il breakpoint.
Se provo a eliminare o disabilitare i punti di interruzione tramite un altro progetto, a volte l'azione non ha effetto, anche se il debugger indica che ha. Quindi mi ritroverò a rompere i punti di interruzione disabilitati o su un punto di interruzione (ora invisibile) che ho rimosso in precedenza.
Ho fatto in modo che i miei punti di interruzione non funzionassero e poi ho creato/Pulisci tutti i target per farli funzionare di nuovo.
Per questo, e anche per Xcode 6 e versioni successive, assicurati che il pulsante di stato del punto di interruzione sia attivato (il pulsante blu a forma di freccia):
In 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
Ho provato tutte le cose di cui sopra, ma per me la disattivazione dei punti di interruzione del debug una sola volta e quindi l'attivazione ha funzionato.
Ho trovato il problema. In qualche modo "Mostra smontaggio durante il debug" è stato abilitato nel mio XCode che crea quel problema. Quando l'ho disabilitato, tutto il mio debugger si è fermato nel mio codice sorgente.
Puoi trovarlo sotto: Product->Debug Workflow->Show Disassembly
durante il debug.
Se tutto il resto fallisce, invece di un punto di interruzione, è possibile chiamare la seguente funzione:
void BreakPoint(void) {
int i=1;
#if !__OPTIMIZE__
printf("Code is waiting; hit pause to see.\n");
while(i);
#endif
}
Per riprendere, imposta manualmente i su zero, quindi premi il pulsante Riprendi.
Mi è successo la stessa cosa in XCode 6.3.1. Sono riuscito a risolverlo:
Dopo aver apportato tale modifica, ho impostato le opzioni Sposta i punti di interruzione sul progetto e deselezionando le Condividi punti di interruzione opzione e funziona ancora.
Non so esattamente perché, ma questo mi fa tornare i punti di interruzione.
Su Xcode 6.4, dovevo riavviare il mio Mac.
(Ho provato ad abilitare/disabilitare i punti di interruzione, riavviare il dispositivo iOS, riavviare Xcode, eliminare i file di punti di interruzione dal pacchetto dell'area di lavoro ...)
Se stai usando Subversion, ripristina i file del tuo progetto (solo) all'ultima volta che hai saputo che il debugger funzionava.
Eccone uno oscuro in cui mi sono imbattuto: se stai lavorando su una libreria condivisa (o un plugin), i tuoi punti di interruzione diventeranno gialli all'avvio, il che potrebbe farti martellare la tastiera per la frustrazione e uccidere il processo di debug. Bene, non farlo! I simboli non verranno caricati fino a quando l'app non caricherà la libreria, a quel punto i punti di interruzione diventeranno validi. Ho riscontrato questo problema con un plug-in del browser ... I BP sono stati disabilitati fino a quando non sono passato a una pagina che ha istanziato il mio plug-in.
Questo succede di tanto in tanto con un progetto iOS almeno. Per risolverlo, ho dovuto riavviare il dispositivo iOS, uscire da Xcode e ricostruire il progetto.
Assicurati anche che la distribuzione AppStore dell'app non sia installata sul dispositivo.
Ho avuto problemi con Xcode che ha perso punti di interruzione durante l'utilizzo del simulatore e con l'impostazione Avvio schema su "attendere l'esecuzione". Cambialo in "avvia automaticamente" e i punti di interruzione tornano in vita.
Un'altra cosa da verificare è che se si dispone di un file plist "Entitlements" per la modalità di debug (probabilmente perché si stanno eseguendo operazioni con il portachiavi), assicurarsi che il file plist abbia la riga "get-task-allow" = YES. Senza di essa, il debug e la registrazione verranno interrotti.
Credo che un progetto possa anche essere corrotto per quanto riguarda i punti di interruzione. Ho un progetto, ad esempio, che NON si interromperà su alcun punto di interruzione che ricorda dalla sessione precedente. Ho scritto per la prima volta su questo qui
Stavo affrontando lo stesso problema quando volevo eseguire il debug di un plug-in Web in cui l'eseguibile personalizzato era Safari 5.1. Funzionava bene fino a quando non ho aggiornato il mio Safari a 5.1 da 4.0.5. Dopo aver installato nuovamente Safari 4.0.5, tutti i punti di interruzione hanno iniziato a funzionare senza modificare alcuna impostazione Xcode.
Ho Xcode 3.2.3 SDK 4.1 I punti di interruzione falliranno a caso. Ho scoperto che se pulisci la build e usi il comando touch sotto build, funzionano di nuovo.
Un altro motivo per cui i punti di interruzione possono diventare gialli è se il file binario dell'applicazione di cui si sta eseguendo il debug è stato modificato dalla prima esecuzione. Nel mio caso, ho aggiunto una cartella alla cartella Contenuti/Risorse dell'applicazione dopo aver eseguito il debug del programma una volta. Durante l'esecuzione del debug dopo aver aggiunto la cartella, i punti di interruzione sono diventati gialli e sono stati ignorati. Ho modificato la mia procedura: ho fatto un clean, una build, ho aggiunto la cartella, quindi ho eseguito e tutto è andato bene.
Forse Xcode (o OS X) crea e ricorda la propria firma digitale dell'applicazione (che era non con firma digitale) e quindi, sentendo che l'applicazione è stata modificata, si rifiuta di provare a impostare punti di interruzione. Creando le mie mod prima della prima esecuzione (di debug) dell'applicazione, è stata fatta la firma digitale con le mie mod.
Tutto questo su OS X 10.6.8 usando Xcode 3.2.2.
Ho appena risolto questo problema in XCode 4.2
, nessuna delle precedenti ha aiutato. Il fatto era (non sono sicuro di ciò che è realmente accaduto, ma forse questo aiuta qualcuno): il mio compagno di squadra ha creato nuove configurazioni di build e aggiornato il progetto in SVN. Avevo impostato la vecchia configurazione di build nelle impostazioni dello schema di esecuzione, quindi i passaggi per me erano:
E questo è tutto, i punti di interruzione sono tornati di nuovo. Spero che sia di aiuto.
Non ho fatto Xcode per un po ', ma ti consiglio di disabilitare "Zerolink" e "Carica simboli pigramente"; questo risolverà la maggior parte dei problemi. Zerolink è comunque un abominio.
Sembra che ci siano 3 stati per i punti di interruzione in Xcode. Se fai clic su di essi, verranno visualizzate le diverse impostazioni. Il blu scuro è abilitato, il grigio è disabilitato e a volte ho visto un blu pallido che mi richiedeva di fare nuovamente clic sul punto di interruzione per farlo passare al colore blu scuro.
Oltre a questo, assicurati di avviarlo con il comando debug e non con il comando run. Puoi farlo premendo l'opzione + comando + ritorno, oppure l'opzione Vai (debug) dal menu Esegui.
Quando si imposta il punto di interruzione, fare clic con il pulsante destro del mouse e si dovrebbero ottenere diverse opzioni su come gestire il punto di interruzione (registrare e continuare, mettere in pausa l'esecuzione, ecc.)
Assicurati anche che "Carica simboli pigramente" non sia selezionato nelle preferenze di debug.
(Si applica a Xcode 3.1, non sono sicuro delle versioni passate/future)
Avere entrambi Xcode 5 e 6 GM ha causato la perdita della funzionalità breakpoint del primo (i beta Xcode 6 erano ok).
Ho provato molti dei metodi suggeriti, ma alla fine ho rinunciato e ora sto usando Xcode 6.
Ciò che ho risolto nel mio caso è stato abbastanza semplice, in Xcode - Product - Clean Build Folder seguito da Product - Run (non il pulsante Play Xcode).
(È stato riscontrato il problema su Xcode 11 -beta 4 dopo essere passati al test dell'unità con il pulsante di riproduzione Xcode premuto a lungo)
Puoi controllare un'impostazione nell'impostazione target Apple compilatore LLVM 4.1 Sezione di generazione del codice Genera simbolo di debug = SÌ
Nel mio caso, ho scoperto che i punti di interruzione sono stati disattivati accidentalmente. Puoi riattivarlo nuovamente tramite Debug-> Attiva punti di interruzione [Cmd + Y]. Se noti indicatori di punto di interruzione in grigio invece del solito indicatore blu, è probabile che sia così.
Come si è scoperto, puoi sempre attivare/disattivare l'attivazione dei punti di interruzione con i tasti Cmd + Y, potresti aver colpito questo tasto di combinazione senza accorgertene. Questo rapporto si basa su Xcode 7.2.
In caso di Xcode 4 e versioni successive * Carica pigramente i simboli * sembra essere è sceso . Quindi fai riferimento a questo post clicca qui
Una spiegazione semplice e dettagliata ha funzionato per me.