J'ai un souci pas commun, lorsque je lance mon release, l'appli se ferme immédiatement. L'exe est dans le bon dossier, comme je l'ai fait des dizaines de fois.
Elle fonctionne correctement lancée depuis l'ide. Pas moyen de tracer quoi que ce soit, j'ai mis un message en première ligne du main(), je n'ai rien et ni stdout.txt ni stderr.txt ne sont créés...
Mon code en blindé en messagerie si quelque chose devait mal se passer, et là rien..
SDL contient un parachute, c'est à dire que quand il y a un crash, l'application ne plante pas mais se ferme.
Tu peux le désactiver dans SDL_Init (voir les options, en tout cas tu avais NOPARACHUTE dans la version 1), et espérer avoir un message d'erreur plus explicite.
Tu utilises quelle version de la SDL2 ? Si c'est une très récente, cela peut venir d'un bug pas encore connu. Ou alors cela vient d'une mise à jour pas trop stable de Windows ou Unix selon le système d'exploitation que tu utilise qui bug avec ton programme.
Drx a écrit:
"Elle fonctionne correctement lancée depuis l'ide. Pas moyen de tracer quoi que ce soit"
Tu as testé en mode Debug avec le Debugger avec l'option -g depuis que tu as constaté le crash en mode release ?. Il peut y avoir un UB qui survient seulement maintenant.
Pour l'instant, je suis resté à la 2.0.12, sur la suivante (2.0.14) j'ai eu des soucis avec l'haptic.
Même résultat avec SDL_INIT_NOPARACHUTE. pas de message, pas de stdout ou stderr alors que la première ligne de mon programme est :
int main(int argc, char* args[])
{//main
freopen("stderr.txt", "w", stderr);
freopen("stdout.txt", "w", stdout);
fprintf(stderr, "In %s at %d\n", __FUNCTION__, __LINE__);
if(TEST_SDL_FUNC)
{
Pourtant, j'ai le temps de voir une fenêtre apparaître brievement. Si je n'ai pas le fichier, je pense que ça plante très vite et qu'il n'a peut-être pas le temps de vider le tampon... J'ai également tenté de démarrer en admin (win10), de le coller en liste blanche dans mon anti-virus, pas moyen.
Non, pas de crash, pas de point d'arrêt avec le debugger (gdb32). je prend grand soin de tout faire tourner assez souvent pour repérer les soucis au fur et à mesure que je code pour ne pas me retrouver submergé par les emmerdes.
Mon code est propre, le compilo n'a que des warnings de merde en C11 pedantique (genre commentaire dans commentaire, ou que __FUNCTION__ n'est pas très legit)
Maintenant que tu en parles, mes projets précédents étaient encore en 2.0.7.
Mes 2 projets basés sur cette versions échouent à démarrer en dehors de tout environnement de developpement. je vais essayer un downgrade pour voir..
Au pire, je n'utilise pas beaucoup de lib, je vais peut-être les recompiler..
Une DLL pourrait fonctionner depuis un IDE et pas en "normal" ? Comme je sais que Code::blocks fait les simulations dans un environnement plutôt safe et tolérant, il arrive peut-être à s'accomoder d'un souci avec une lib dynamique ?
Le problème peut effectivement venir de (par exemple): tu as l'archive de la SDL2 dite de développement avec la version 2.0.12 décompressé dans ton dossier des bibliothèques que tu utilises pour la programmation et dans le répertoire de travail ou tu met ton exécutable de post production/release avec les autres données du jeu tu as laissé la DLL de SDL2 de la version 2.0.7 (mais vérifie ce système aussi avec des bibliothèques tierces proches comme la SDL2_image ttf mixer ou net).
Comme je travaille quasi-exclusivement avec des png, j'imagine que ça plantait au premier chargement d'image.
Aucune chance que je n'ai pas de test de valeur, tous mes appels se font dans ma lib, comme c'est déjà fait depuis un moment, je n'ai rien à oublier.
Pour être honnête, je voulais vite avoir un exe qui tourne, je n'ai pas trop cherché quand j'ai eu ce que je voulais, puis j'ai du passer à autre chose. Mais je compte bien résoudre ce mystère quand j'aurai le temps de m'y remettre. Après coup, je me dit qu'il y a peut-être une autre redirection de stderr et stdout quelque part, parce qu'il n'y a vraiment aucune raison que je n'ai pas de messagerie. Et c'est la réponse la plus simple, donc rasoir d'Ockham.
La vraie vie m'occupe pour l'instant, mais j'apporterai une réponse quand je la trouverai.
Pour info, j'ai bien trouvé un reopen plus loin, les logs finissaient en fait dans le dossier user/appdata/roaming de l'appli, j'avais testé ça et j'ai du oublier de le virer.
Je me sens un peu con du coup. J'avais bien un défaut de SDL_image me disant qu'il avait un souci avec l'accès à la DLL.
ça m'apprendra à perdre mon calme, on arrête de penser clair et pragmatique.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Bonhomme !! | Jeu de plateforme : Prototype.
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
Mon site web de jeux SDL2 entre autres : https://www.ant01.fr
Bonhomme !! | Jeu de plateforme : Prototype.
Mon site web de jeux SDL2 entre autres : https://www.ant01.fr
Bonhomme !! | Jeu de plateforme : Prototype.
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
Bonhomme !! | Jeu de plateforme : Prototype.
Bonhomme !! | Jeu de plateforme : Prototype.