Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Membre chevronné
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : septembre 2008
    Messages : 680
    Points : 720
    Points
    720

    Par défaut Insight (frontend GDB) impossible à compiler

    Bonjour à tous,

    Je code en C++ sous Windows et ne souhaite pas utiliser d'IDE.
    J'utilise GVim (éditeur de texte), couplé à MinGW (GCC pour Windows) et CMake. J'aime beaucoup cet environnement, mais il me manque un frontend pour GDB (le débuggeur de GCC).

    Deux noms sortent du lot : Insight et DDD.

    J'ai opté pour le premier. Je me suis rendu sur le site officiel pour télécharger le code source (pas de binaire disponible).
    J'ai installé MSYS (environnement pseudo-unix permettant entre autres de compiler facilement un projet nécessitant la commande « ./configure && make && make install ») en suivant ces indications : http://www.mingw.org/wiki/msys .

    Le configure se passe sans encombre, mais la compilation s'interrompt lors du linking de la bibliothèque TCL :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    []
    gcc -shared -g -O2  -o tcl84.dll -mwin32                -Wl,--out-implib,libtcl8
    4.a regcomp.o regexec.o regfree.o regerror.o tclAlloc.o tclAsync.o tclBasic.o tc
    lBinary.o tclCkalloc.o tclClock.o tclCmdAH.o tclCmdIL.o tclCmdMZ.o tclCompCmds.o
     tclCompExpr.o tclCompile.o tclDate.o tclEncoding.o tclEnv.o tclEvent.o tclExecu
    te.o tclFCmd.o tclFileName.o tclGet.o tclHash.o tclHistory.o tclIndexObj.o tclIn
    terp.o tclIO.o tclIOCmd.o tclIOGT.o tclIOSock.o tclIOUtil.o tclLink.o tclLiteral
    .o tclListObj.o tclLoad.o tclMain.o tclNamesp.o tclNotify.o tclObj.o tclPanic.o
    tclParse.o tclParseExpr.o tclPipe.o tclPkg.o tclPosixStr.o tclPreserve.o tclProc
    .o tclRegexp.o tclResolve.o tclResult.o tclScan.o tclStringObj.o tclStubInit.o t
    clStubLib.o tclThread.o tclThreadAlloc.o tclThreadJoin.o tclTimer.o tclUtf.o tcl
    Util.o tclVar.o tclWin32Dll.o tclWinChan.o tclWinConsole.o tclWinSerial.o tclWin
    Error.o tclWinFCmd.o tclWinFile.o tclWinInit.o tclWinLoad.o tclWinMtherr.o tclWi
    nNotify.o tclWinPipe.o tclWinSock.o tclWinThrd.o tclWinTime.o  strftime.o strtol
    l.o strtoull.o tcl.res.o
    Creating library file: libtcl84.a
    tclWinChan.o: In function `Tcl_MakeFileChannel':
    C:\msys\1.0\home\florian\insight\build\tcl\win/../../../src/tcl/win/tclWinChan.c:
    1052: undefined reference to `ESP'
    C:\msys\1.0\home\florian\insight\build\tcl\win/../../../src/tcl/win/tclWinChan.c:
    1052: undefined reference to `EBP'
    C:\msys\1.0\home\florian\insight\build\tcl\win/../../../src/tcl/win/tclWinChan.c:
    1067: undefined reference to `ESP'
    C:\msys\1.0\home\florian\insight\build\tcl\win/../../../src/tcl/win/tclWinChan.c:
    1067: undefined reference to `EBP'
    collect2: ld returned 1 exit status
    make[3]: *** [tcl84.dll] Error 1
    make[3]: Leaving directory `/home/florian/insight/build/tcl/win'
    make[2]: *** [all] Error 2
    make[2]: Leaving directory `/home/florian/insight/build/tcl'
    make[1]: *** [all-tcl] Error 2
    make[1]: Leaving directory `/home/florian/insight/build'
    make: *** [all] Error 2
    Suis-je le seul dans cette situation ?
    Y a-t-il des utilisateurs d'Insight travaillant sous Windows ? Si oui, avez-vous suivi ces étapes pour installer Insight ?

    (Quant à DDD, j'ai tenté la même opération sans succès. Mais ce sera peut-être l'objet d'un autre topic.)

    Merci.
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

  2. #2
    Rédacteur/Modérateur
    Avatar de 3DArchi
    Inscrit en
    juin 2008
    Messages
    7 636
    Détails du profil
    Informations forums :
    Inscription : juin 2008
    Messages : 7 636
    Points : 11 688
    Points
    11 688

    Par défaut

    Salut Florian,
    Essaie Visual C++ Express
    J'ai trouvé ce conseil :
    Here is the solution to this problem:

    Change lines:
    static void *ESP;
    static void *EBP;

    to

    static void *ESP __attribute__ ((used));
    static void *EBP __attribute__ ((used));
    Pour quelqu'un qui se plaignait des mêmes symptômes mais dans un autre contexte.

  3. #3
    Membre chevronné
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : septembre 2008
    Messages : 680
    Points : 720
    Points
    720

    Par défaut

    Merci Archi, c'était bien ça .

    J'ajouterais quelques autres modifs nécessaires :
    - retirer les casts des lignes correspondant aux erreurs « lvalue required… » (caster une lvalue, quelque chose m'échappe…) ;
    - ajouter des « return 0; » à la fin des fonctions non-void qui ne contiennent aucune instruction return.

    Et maintenant j'ai un « bidule may be used uninitialized » qui vient de me couper l'envie d'utiliser ce truc.
    Je vais chercher autre chose qu'Insight, parce que si c'est aussi chiant à utiliser qu'à compiler, je sens que je vais me faire du mal .

    EDIT : Suite à ce hurlement primaire nécessaire, j'ai corrigé les dernières erreurs de compilation. Il y a deux tableaux qu'il faut initialiser avec = {0}.
    Les utilisateurs de MSYS comme moi (et non ceux de Cygwin) doivent en plus appliquer un patch : http://sourceware.org/ml/gdb-patches.../msg00214.html

    J'ai enfin réussi à lancer une IHM \o/.
    Ça a intérêt à être vachement bien, ce bidule…

    Merci pour ton aide, Archi !
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

  4. #4
    Rédacteur/Modérateur
    Avatar de 3DArchi
    Inscrit en
    juin 2008
    Messages
    7 636
    Détails du profil
    Informations forums :
    Inscription : juin 2008
    Messages : 7 636
    Points : 11 688
    Points
    11 688

    Par défaut

    Salut Florian,
    Un petit retour d'expérience quand t'auras tâté la chose deux ou trois fois sera le bienvenu

  5. #5
    Membre du Club
    Inscrit en
    juin 2002
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : juin 2002
    Messages : 181
    Points : 61
    Points
    61

    Par défaut

    sinon, autre solution que je pense possible, pourquoi ne pas utiliser le debug frontend avec eclipse CDT?
    N'hésitez pas à dialoguer en direct avec moi

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •