Je suis en train de convertir une bibliothèque Windows que ma société produit sous AIX. Nous sommes actuellement en mesure de l'exécuter sur Solaris et Linux, mais AIX pose des problèmes supplémentaires. Je ne suis pas sûr s'il s'agit d'un problème de configuration du système d'exploitation ou d'un problème de codage, mais j'essaie d'abord d'utiliser l'approche de codage. La bibliothèque exporte certaines fonctions en utilisant une convention de style C à partir de divers modules. Mon application de test peut heureusement appeler certaines des fonctions de certains modules. Il existe cependant un module particulier où chaque fonction se sépare. J'ai mis un message de journal de cout au dessus de la fonction et ceci n'est pas touché. En regardant le coredump avec dbx montre seulement que la faute est un opcode illégal 0x0. J'ai essayé d'écrire une application de test qui exporte une fonction d'une bibliothèque et la consomme dans une application, ce qui est bien. J'ai également essayé d'écrire une application de test plus petite qui ne relie que le module contenant les fonctions incriminées. Dans ce cas, je peux déclencher la journalisation de cout dans la fonction. J'ai toutes les optimisations désactivées et les mêmes drapeaux/versions du compilateur pour l'application et la bibliothèque.Segfault sur AIX à partir d'une grande bibliothèque C++
Il me semble que la bibliothèque est trop grande/exporte trop de fonctions et que quelque chose devient corrompu/débordant. Je n'ai pas d'expérience AIX donc tout point de vue sur le fait de savoir si cela est probable ou d'autres moyens de persévérer pour le débogage serait très apprécié.
Quelques informations supplémentaires. Si je cours nm sur la bibliothèque alors je peux voir les symboles avec des valeurs raisonnables pour les fonctions exportées. La seule différence entre celui qui fonctionne et celui qui ne fonctionne pas est que celui qui travaille est exposé comme D et ceux qui ne travaillent pas sont exposés comme T. Cela me semble correct mais sinon les valeurs sont raisonnables. J'ai aussi essayé d'utiliser bigtoc et toc minimal et cela ne fait aucune différence. – Jon