Debogage sous Ubuntu avec Nemiver ( alternative a GDB..)

general_bol Messages postés 2 Statut Membre -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

J'essaye d'utiliser nemiver pour deboger qqs lignes de C...
Pas moyen de charger l'executable a deboger car message de nemiver " Le processus du moteur de debogabe sous-jacent s'est arrète"
Il me parlerait chinois, ca serait pareil !!!
Le moteur de debogage est GDB car installé automatiquement lors de l'install d'Ubuntu
Ca dit qqch a qqun ?
merci

1 réponse

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     
    Bonjour,

    Le titre de ton message et son contenu sont contradictoire : est ce que c'est finalement gdb qui est utilisé ou pas ? Si nemiver est une surcouche à
    gdb
    , alors la réponse est oui (et c'est bien, car c'est l'outil standard).

    Tu peux alors déboguer ton programme avec
    gdb
    :

    gcc -g toto.c -o mon_executable
    gdb ./mon_executable


    L'invite de
    gdb
    s'affiche et te permet de taper des commandes gdb pour piloter le débogueur. Pour la plupart d'entre elles il suffit de taper la première lettre plutôt que la commande entière (par exemple "p" au lieu de "print").

    D'ici, tu peux installer des breakpoints (et ensuite avancer pas à pas une fois que l'un d'eux est atteint avec
    n
    ou
    c
    ) :

    b ma_fonction


    ... lancer le programme (ici on suppose qu'il prend en argument param1 et param2) :

    r param1 param2


    , et en cas de plantage afficher la pile d'exécution.

    bt
    l


    Tu peux aussi afficher le contenu d'une variable (
    p toto
    ), bien entendu quitter (
    q
    ), et bien d'autres choses...

    Plus de détails ici :
    http://perso.ens-lyon.fr/daniel.hirschkoff/C_Caml/docs/doc_gdb.pdf

    Personnellement j'utilise directement
    gdb
    , et pour les gros projets
    kdevelop
    qui offre une interface graphique pour
    gdb
    . Quand tu deviens familier du C/C++, les erreurs nécessitant l'utilisation de gdb sont plutôt des erreurs mémoires (segmentation fault) qu'on peut généralement comprendre juste en lançant le programme, et en regardant avec
    bt
    où il a planté.

    Bonne chance
    0