Bonjour,
J'utilise gcc 4.1.1 sous MinGW pour compiler une application sous windows.
A l exécution j obtiens un crash curieux sur un appel de méthode d un pointeur C++ non null.
L objet déréférencé a été créé quelques lignes avant et n a pas encore été détruit donc le segfault me paraissait curieux.
En regardant d un peu plus je me suis aperçu que le problème vient du pointeur de la vtable de l objet qui est initialise avec une valeur ne correspondant pas du tout aux valeurs habituelles pour des pointeurs : 0x8
Il se trouve que la particularité de ce code est de contenir beaucoup de templates précompilés ce qui me donne un nombre de symbol tres important.
En désactivant la compilation d une partie de ces templates ( ce qui réduit de beaucoup ma taille de table des symboles ) l éxecution se passe normalement et la valeur du pointeur de vtable a une bien meilleure tête.
est ce que vous avez déjà rencontre ce problème ? ou pensez vous que cela pourrait etre un bug du linker qui n arrive pas a gérer une table des symboles de cette taille ?
Pour info la bascule execution OK/crash semble etre entre 262000 et 264000 symboles dans mon cas
Mon environnement de dev est Msys, gcc 4.1.1 pour windows utilise en mode 32 bits, linker ld
Merci d avance
Partager