Crash in png_set_read_fn () sous Windows 7

Je suis en train de comstackr du code C pour Windows 7 et de créer un lien vers libpng12.dll trouvé ici . Malheureusement, la ligne ci-dessous provoque un crash (GDB dit faute de segmentation):

png_structp png = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); 

Je ne sais pas par où commencer pour déboguer ceci – cette fonction semble très simple et sans rapport avec le rest du code. Le haut de la trace ressemble à ceci:

 #0 0xabababab in ?? () #1 0x6cc556d1 in png_set_read_fn () from c:\...libpng12.dll #2 0x6cc7a5d4 in png_libpng_ver () from c:\...libpng12.dll #3 0x00000038 in ?? () #4 0x0028f928 in ?? () 

Je suppose que # 4 est png_create_read_struct (), puisque # 5 est la fonction dont je l’appelle.

S’il vous plaît, générez d’abord un core dump en utilisant ADplus ou windbg, etc., puis examinez le code d’assemblage autour de l’adresse de # 0 (0xabababab). Vous pouvez également vérifier les valeurs des variables en ce qui concerne l’assembly. Si vous avez le code source, vous aurez peut-être une bonne chance de comprendre la logique de la raison pour laquelle il se bloque.

Résolu (malheureusement par essais et erreurs), mais juste au cas où quelqu’un d’autre rencontrerait ce problème, il est dû à une version incorrecte de zlib (trop ancienne pour moi). Vous pouvez vérifier cela assez facilement au moment de l’exécution:

 fprintf(stderr, " Comstackd with libpng %s; using libpng %s.\n", PNG_LIBPNG_VER_STRING, png_libpng_ver); fprintf(stderr, " Comstackd with zlib %s; using zlib %s.\n", ZLIB_VERSION, zlib_version);