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

Code::Blocks Discussion :

[GDB] Segfault avant d'entrer dans le main()


Sujet :

Code::Blocks

  1. #1
    Membre éclairé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2007
    Messages : 373
    Points : 764
    Points
    764
    Par défaut [GDB] Segfault avant d'entrer dans le main()
    Salut !
    J'ai un soucis avec le debugger :
    Il me fait une Segfault avant même que mon propre code soit exécuté (pas d'entrée dans le main()).
    Mon programme fonctionne si je le lance à la main ou à partir de Code::Blocks, mais dès que je lance le debugger, ça plante.
    Comment c'est possible ?
    Il ne digère pas une des DLL que j'utilise ?
    Ca me parait étrange, puisque ça m'arrive dans deux environnement de programmation différents (un prog avec Ogre, et un autre avec une librairie basée sur une version de DX différente que celle utilisée par Ogre, donc à priori aucune DLL en commun).

    Si quelqu'un à une idée...
    Merci

  2. #2
    Membre éclairé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2007
    Messages : 373
    Points : 764
    Points
    764
    Par défaut
    J'ai été mis sur la bonne piste grâce à un autre forum :
    Le problème vient du fait que Code::Blocks ne donne pas le bon dossier d'exécution au debugger :
    C:\Programmation2\OgreTest\
    ... au lieu de :
    C:\Programmation2\OgreTest\bin\Debug

    Ce qui fait que gdb n'arrive pas à charger les DLL.
    Je vais voir si je peux arranger ça et j'édite ce post dès que j'ai la solution.

    Edit : hé bien le problème ne vient pas de là. Si je lance gdb avec la console de windows, ça me donne ça :
    > gdb C:\Programmation2\OgreTest\bin\Debug\OgreTest.exe
    (gdb) run
    Starting program: C:\Programmation2\OgreTest\bin\Debug\OgreTest.exe
    Loaded symbols for C:\WINDOWS\system32\ntdll.dll
    Loaded symbols for C:\WINDOWS\system32\kernel32.dll
    Loaded symbols for C:\WINDOWS\system32\msvcrt.dll
    Loaded symbols for C:\WINDOWS\system32\user32.dll
    Loaded symbols for C:\WINDOWS\system32\gdi32.dll
    Loaded symbols for C:\Programmation2\OgreTest\bin\Debug\OgreMain_d.dll

    Program received signal SIGSEGV, Segmentation fault.
    0x10008751 in OgreMain_d_dll_iname ()
    (gdb) _
    gdb trouve donc bien les DLLs.

  3. #3
    Membre éclairé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2007
    Messages : 373
    Points : 764
    Points
    764
    Par défaut
    Encore des tests :
    Débugger une application hyper simple (genre juste un main() avec une addition, sans aucune lib) fonctionne.
    Débugger une application linkée avec une lib statique fonctionne.
    Le crash n'apparait que lorsque je link mon application avec une lib dynamique (donc une DLL).

    Alors où est le problème ?
    Mon programme fonctionne, le debugger trouve bien les DLLs, alors quoi ?

    Ps : si on pouvait déplacer ce sujet, il n'a finalement pas de rapport avec CB (en plus ce sous forum est un peu mort ^^)

Discussions similaires

  1. test avant d'entrer dans une boucle For each cell in selection
    Par totoro02 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 13/01/2009, 09h27
  2. sortir d'un clip avant d'entrer dans un autre
    Par tseuk dans le forum Flash
    Réponses: 4
    Dernier message: 09/09/2008, 14h51
  3. Entrer dans un JTextField
    Par Pfeffer dans le forum Composants
    Réponses: 3
    Dernier message: 04/05/2005, 14h43
  4. Réponses: 5
    Dernier message: 25/04/2004, 00h57
  5. [TP]Compiler un prog sans entrer dans TP7
    Par poppels dans le forum Turbo Pascal
    Réponses: 11
    Dernier message: 23/10/2002, 18h46

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