2010-10-23 43 views
1

Je trouve un moyen de mettre en pause l'exécution du programme par code sur Xcode Par exemple, je peux arrêter l'exécution avec la fonction abort() C. Cela fait apparaître le débogueur Xcode.Définition du point d'arrêt Xcode par code? (comme la fonction pause()

Cependant, ce programme se termine complètement, donc je trouve un moyen d'exécuter pause. Je peux donc reprendre l'exécution après avoir vérifié les états d'exécution.

Ceci est nécessaire pour gérer les erreurs de poids léger. J'ai essayé la fonction pause() C, mais cela ne fonctionne pas. L'exécution a avorté au lieu de s'arrêter.

Répondre

9

Si vous voulez être en mesure de briser une fonction spécifique chaque fois qu'il ya une erreur, définissez alors une fonction comme ceci:

void BREAK_HERE_Eonil(void) { 
    NSLog(@"Set a breakpoint on BREAK_HERE_Eonil to debug.\n"); 
} 

appel BREAK_HERE_Eonil() chaque fois que vous souhaitez entrer dans le débogueur. Définissez un point d'arrêt sur BREAK_HERE_Eonil() dans Xcode. Maintenant, exécutez sous le débogueur. Chaque fois que vous appuyez sur cette fonction, vous entrez dans le débogueur.

Vous pouvez également utiliser l'ancien appel Debugger(); Xcode a une option dans le menu Exécuter à "Stop on Debugger()/DebugStr()".

Vous pouvez aussi gérer votre application sous le débogueur et cliquez sur le gros bouton de pause dans la fenêtre du débogueur chaque fois que vous voulez briser dans.

+0

Technique brillante! Merci de répondre! – Eonil

1

Une autre méthode que je l'utilise souvent dans la programmation iOS est d'inclure un point d'arrêt dans un si déclaration. Comme si:

if (your_condition) { 

    //put an Xcode breakpoint here 

} 

De cette façon, je peux appeler conditionnellement points d'arrêt dans des boucles et d'autres endroits qui s'appelle trop souvent d'avoir un point d'arrêt inconditionnel.

+0

Vous pouvez également cliquer avec le bouton droit sur le point d'arrêt, cliquer sur Modifier le point d'arrêt et y ajouter une condition. –