J'ai un problème avec lequel je me bats depuis un moment.L'exécution de l'application Cocoa sous le plus grand nombre de causes dyld_misaligned_stack_error en mode Libération
J'ai une bibliothèque Cocoa qui agit comme un wrapper pour une bibliothèque C++. La bibliothèque C++ est testée en utilisant un ensemble de tests unitaires BOOST. Les tests s'exécutent normalement dans les deux modes de débogage et de libération.
Afin de tester l'emballage de cacao que j'utilise otest. Voici la partie étrange, les tests s'exécutent normalement en mode debug mais échouent en mode release. Pour s'assurer que ce n'est pas quelque chose dans le code, j'ai pris le contenu des tests et les compilés comme une application Cocoa séparée qui utilise le code de l'encapsuleur. Cela fonctionne normalement à la fois sous la version et le débogage.
Lorsque otest échoue, j'obtiens une trace de pile qui n'a pas grand sens et se termine par dyld_misaligned_stack_error. Une autre chose étrange que j'ai remarquée est que lorsque je commence à partir d'une ligne de commande plutôt que de XCode si je pointe DYLD_LIBRARY_PATH et DYLD_FRAMEWORK_PATH vers la version Debug de la bibliothèque C++ les tests passent. J'ai confirmé cependant que tout mon code de test est en train d'être compilé avec les indicateurs de version.
Toute aide serait grandement appréciée!
Merci
Merci pour la réponse. Cependant, cela ne semble pas être la raison dans ce cas, même si cela a aidé à découvrir une solution. Pour une raison quelconque, la suppression de NDEBUG des indicateurs C en mode Release a résolu le problème même sans l'option -mstackrealign. Je ne comprends pas pourquoi. – Alex
Nevermind :) J'ai oublié d'ajouter ce drapeau pour publier la version de mes bibliothèques C++. Merci beaucoup, votre réponse a aidé à trouver le problème. – Alex