Dans mon application iPhone (XCode 3.2.4, iOS3.1.3), si j'exécute l'application en mode RELEASE, tout va bien, mais en mode DEBUG, le l'application tombe en panne avec une exception EXC_BAD_ACCESS. L'application effectue des calculs complexes. Tout le code principal est contenu dans plusieurs bibliothèques statiques C++ et l'UIApplication crée uniquement un objet à partir de l'une de ces bibliothèques et appelle une méthode de cet objet.Taille de pile des threads secondaires, différences significatives entre les versions DEBUG et RELEASE
Si je mets dans un thread secondaire le code qui appelle les calculs complexes, j'ai toujours le même comportement: Exception EXC_BAD_ACCESS en mode DEBUG et pas de problème en mode RELEASE. Puis j'ai regardé autour de la taille de la pile de threads. Par défaut, iOS définit une taille de pile de thread avec 512 Ko pour les threads secondaires et 1024 Ko pour le thread principal. J'ai regardé la valeur minimale requise pour la taille de la pile de threads pour exécuter correctement mon application. J'ai trouvé le résultat suivant: 40 Kbytes pour la version RELEASE. 1168 Ko pour la version DEBUG. La valeur 1168 kilo-octets dans la version DEBUG explique pourquoi dans le thread principal, l'application va planter (la taille de la pile de défaut pour le thread principal est de 1024 kilo-octets).
Je ne comprends vraiment pas pourquoi la taille de la pile de threads requise est si différente entre les versions RELEASE et DEBUG de mon application (40 KB vs 1168 Kb !!!). Je voudrais de l'aide pour comprendre ce problème.
Merci. Marc