2010-08-26 7 views
1

J'ai un petit problème avec le débogueur Xcode. Il me semble que la fonction "Step In" ne fonctionne pas comme elle le devrait. Ou tout comme je m'attends à ce que ça marche.Problème de débogage Xcode

Je peux intervenir tout appel de méthode tant qu'il n'a pas de valeur de retour:

[myObject DoSomething]; 

Cela fonctionne, mais trouver si la méthode a une valeur de retour, il n'y a pas intervenir. le débogueur ne fait que survoler la méthode. Si je fais la même chose avec des fonctions que des méthodes, le débogueur intervient toujours dans l'appel de la fonction. Peu importe si elle a une valeur de retour ou non.

Est-ce un bug? Est-ce une caractéristique? Est-ce que c'est censé être comme ça? Je l'ai essayé avec le Xcode actuel et le Xcode 4 Beta sur des machines différentes mais le débogueur refuse d'entrer dans les méthodes avec des valeurs de retour.

EDIT

Oui, je suis en mode débogage. Je n'obtiens aucune erreur de compilateur, aucun avertissement. Je peux facilement reproduire ce problème à tout moment. Une méthode CalculateSomething -> juste faire un retour 5; et le débogueur ne s'en mêlera pas. La valeur n'est pas nulle après, le programme fonctionne bien.

Seul le débogueur refuse d'appliquer la méthode ou toute autre méthode avec une valeur de retour.

+0

Dou vous construisez en mode débogage? Avez-vous déclaré cette méthode avant? Des avertissements du compilateur? Toute sortie sur la console? Si je dois deviner, b est zéro après l'appel? – Eiko

Répondre

0

Je n'ai pas vu ce problème sur Xcode 3.2.3.

Cependant, j'ai vu des cas où le débogueur est confus au sujet de méthodes appelées contre des objets renvoyés par des méthodes intégrées, par ex.

id myResult=[[self returnAnObject] tellObjectToDoSomething]; 

Parfois, le débogueur ne semble pas savoir quelle méthode de tomber dans ou il « oublie » qu'il ya deux appels de méthode sur la ligne.

Si vous avez personnaliser accesseurs, vous pouvez toujours tomber dans le l'accesseur au lieu de la méthode externe (à savoir tellObjectToDoSomething.)

4

Dans les paramètres du projet de débogage vous devez désactiver optimisation options de code avec optimization_level = NONE.

Bonne chance!

Source: Working with Xcode Build Settings

+0

N'a pas aidé. NONE est la valeur par défaut et était déjà définie. – TalkingCode

+0

Le lien de la source est périmé. Est-ce ce que vous avez lié? https://developer.apple.com/library/ios/recipes/xcode_help-project_editor/Articles/BasingBuildConfigurationsonConfigurationFiles.html – boidkan

0

Désactiver l'optimisation de code. Dans les paramètres de construire, changement:

enter image description here Pour:

enter image description here