IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SDL Discussion :

[SDL_Mixer 2.0.1] Mix_OpenAudio fait planter GDB


Sujet :

SDL

  1. #1
    Membre régulier
    Avatar de DjPoke
    Homme Profil pro
    Invalide temporaire
    Inscrit en
    Août 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Invalide temporaire

    Informations forums :
    Inscription : Août 2005
    Messages : 93
    Points : 77
    Points
    77
    Billets dans le blog
    1
    Par défaut [SDL_Mixer 2.0.1] Mix_OpenAudio fait planter GDB
    Bonjour à tous

    J'ai un problème avec SDL Mixer 2.0.1 et Codeblocks.

    Si je compile normalement mon programme, il fonctionne et le son aussi.

    Mais si je le compile avec le débugger (GDB), alors, la fenêtre s'ouvre, mais se freeze dès que la commande Mix_OpenAudio est employée.

    J'ai essayé sur 2 windows et une machine virtuelle Ubuntu récente, rien n'y fait.

    L'erreur affichée est :

    [debug]Program received signal ?, Unknown signal.
    [debug][Switching to Thread 13624.0x263c]
    [debug]0x76eea6f2 in RaiseException () from C:\WINDOWS\SysWoW64\KernelBase.dll
    [debug]>>>>>>cb_gdb:

    In RaiseException () (C:\WINDOWS\SysWoW64\KernelBase.dll)

    [debug]> bt 30
    [debug]#0 0x76eea6f2 in RaiseException () from C:\WINDOWS\SysWoW64\KernelBase.dll
    [debug]#1 0x6c81b14c in SDL_LogCritical () from D:\C\RGVM\SDL2.dll
    [debug]#2 0x406d1388 in ?? ()
    [debug]#3 0x00000000 in ?? ()
    [debug]>>>>>>cb_gdb:
    [debug]> quit
    [debug]error return ../../gdb-7.6.1/gdb/windows-nat.c:1275 was 5

    Debugger finished with status 0
    Auriez-vous une idée sur ce que je peux faire pour résoudre le problème ?

    Voici un morceau de mon source, sachant que SDL_INIT_AUDIO a été initialisé avec succès :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    // load support for the OGG sample/music formats
        int flags = MIX_INIT_OGG;
        int initted = Mix_Init(flags);
        if((initted & flags) != flags) {
            printf("Mix_Init: Impossible d'initialiser le support ogg !\n");
            printf("Mix_Init: %s\n", Mix_GetError());
            return 1;
        }
     
        // TODO: résoudre le bug qui empêche GDB de fonctionner (ici !!!)
        if(Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, MIX_DEFAULT_CHANNELS, 2048) < 0) {
            fprintf(stdout,"Impossible d'ouvrir Mix_OpenAudio: %s", SDL_GetError());
            return 1;
        }
     
        // Allouer 16 canneaux de mixage
        Mix_AllocateChannels(16);
    EDIT: Pour Ubuntu, c'est corrigé, c'était autre chose.

    En farfouillant sur le net, j'ai remarqué que ce problème semble provenir d'un bug de MinGW.
    Je vais donc voir si je peux le mettre à jour par rapport à CodeBlocks 16.01.
    Sinon, je vais voir où reporter le problème.

    Si quelqu'un sait comment le contourner, je suis preneur.

    EDIT2: J'ai mis à jour GDB en installant TDM gcc mais le bug persiste.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Avez-vous la dernière version de la SDL 2 (2.0.5) ? Pourriez-vous la compiler à partir des sources, afin de permettre le débogage au sein de la SDL et donc voir ce qu'est le LogCritical et quel est le message qu'il est sensé retourné.
    Ainsi, vous aurez une meilleure compréhension de là où cela crashe (et le pourquoi).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre régulier
    Avatar de DjPoke
    Homme Profil pro
    Invalide temporaire
    Inscrit en
    Août 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Invalide temporaire

    Informations forums :
    Inscription : Août 2005
    Messages : 93
    Points : 77
    Points
    77
    Billets dans le blog
    1
    Par défaut
    Bonjour

    J'ai bien la version 2.0.5 de la SDL.
    Par contre, je ne suis pas très motivé pour compiler la SDL.

    Ce qui est étrange, c'est que le problème n'est pas relatif à mon PC puisque je l'ai essayé sur 2 PC bien différents.

    J'ai même essayé d'installer MinGW64 et de configurer le compiler et le debugger comme indiqué mais j'ai le même problème.
    C'est étrange que seul le débugger plante !!

    Mon projet doit contenir quelque chose que Codeblocks fait semblant de ne pas voir, mais qui déplaît à GDB sur Windows.

    N'y a t'il pas moyen de rajouter un flag dans Codeblocks pour qu'il cherche une syntaxe en C plus stricte ?

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    -Wall -Wextra
    Cela peut se rajouter dans les options du projet. Le -Wall est de base, normalement.

    Sinon, utiliser le débogueur mémoire Dr Memory. Peut être il va mieux chopper l'erreur.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Membre régulier
    Avatar de DjPoke
    Homme Profil pro
    Invalide temporaire
    Inscrit en
    Août 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Invalide temporaire

    Informations forums :
    Inscription : Août 2005
    Messages : 93
    Points : 77
    Points
    77
    Billets dans le blog
    1
    Par défaut
    Merci de ton aide.

    Je vois ça cet après midi.
    Si c'est bon, je pourrai marquer le sujet comme résolu.

    EDIT:

    Dr Memory me trouve un problème sur la ligne qui initialise la SDL, et cela dérange le Kernel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        // Initialiser la SDL 2
        if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_JOYSTICK | SDL_INIT_EVENTS | SDL_INIT_TIMER) != 0) {
            SDL_Log("Échec de l'initialisation de la SDL (%s)\n",SDL_GetError());
            return 1;
        }
    EDIT 2:
    J'ai remarqué que si je supprime le flag SDL_INIT_JOYSTICK, la fenêtre s'ouvre pendant une fraction de seconde.
    Du coup, je me demande si cela n'est pas dû à mon joypad Xbox.
    Je sais que windows 10 est compatible avec, mais mes 2 PC on cela en commun, c'est qu'ils ont chacun un de ces joypads connectés.
    J'ai essayé de le déconnecter, cela ne change pas grand chose.
    Un driver de joypad Xbox qui fait planter la SDL 2, peut-être ?
    Je vais voir si je peux le mettre à jour mais je ne suis pas sûr.

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Quel genre d'erreur ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. MS Project fait planter Access
    Par yoyo30 dans le forum Access
    Réponses: 4
    Dernier message: 22/09/2005, 09h56
  2. Réponses: 2
    Dernier message: 18/03/2005, 13h00
  3. probleme de requette qui fait planter powergres
    Par fehmitn dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 15/09/2004, 18h48
  4. Réponses: 12
    Dernier message: 16/03/2004, 14h21
  5. fonction qui en fait planter une autre
    Par ickis dans le forum C
    Réponses: 5
    Dernier message: 18/08/2003, 21h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo