J'essaye de déboguer un petit prototype pour une application iPhone (iOS Simulator 4.1), compilé en Debug, avec toutes les configurations apparemment correctes. L'application utilise le moteur graphique Cocos2d et la bibliothèque GDataXMLNode (pour la lecture XML). Il n'y a pas beaucoup de choses qui se passent. Mais sur certaine méthode, si je mets un point d'arrêt, gdb simplement "arrête".Xcode s'arrête aux points d'arrêt et semble se bloquer
est ici la ligne d'état du débogueur après avoir touché il point d'arrêt:
Et voici le code qui a le point d'arrêt (sshot):
Note : le point d'arrêt pourrait être n'importe où dans cette fonction et c'est la même chose.
Et voici le code d'appel (d'un autre objet)
self.map = [SimulationLoader loadMap];
Aucun des boutons éditeur de travail lorsqu'un point d'arrêt est placé à l'intérieur du « LoadMap » (étape en, sortez, ensuite, continuer l'exécution, Je peux arrêter et/ou redémarrer le débogage et ça marche (mais ça remonte au début) L'invite de gdb va me permettre d'écrire, mais rien ne se passe, je ne peux pas voir les valeurs des objets ou tout ce qui concerne le débogage. reprendre l'exécution, il ne fera rien
La chose étrange est que, si je mets un point d'arrêt avant ou après cette ligne (le loadMap), tout fonctionne, et je peux sortir ou entrer, déboguer et faire tout ce que je veux faire.
Qu'est-ce qui me manque?
Quelques secondes après que le point d'arrêt "défaillant" est atteint (et qu'il "se bloque"), la fenêtre de la pile s'efface. Je crois que tout cela arrive parce que le gdb s'est arrêté, mais la question est: pourquoi est-ce que ça s'arrête là? Quelles sont les restrictions pour cela?
Je compile avec LLVM GCC 4.2 pour ce qui vaut la peine (mais pourrait probablement changer à l'autre si c'est le problème, n'ai pas essayé cela parce que je ne sais pas beaucoup au sujet des différences).