Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/04/2011, à 09:41

shadowless

debugger [Résolu]

Bonjour
si le vous plait , et ce qu'il y  quelqu'un qui peut me proposer un debugger  autre que GDB , avec un interface graphique

Dernière modification par shadowless (Le 21/04/2011, à 16:42)

Hors ligne

#2 Le 19/04/2011, à 09:57

Anium

Re : debugger [Résolu]

Bonjour,

Il existe DDD disponible dans les dépôts.

Hors ligne

#3 Le 19/04/2011, à 10:33

shadowless

Re : debugger [Résolu]

si le vous plait j'ai placé un breakpoint sur ma fonction principale linge22  ou s'est écrit l'instruction " Image2.Load(argv[2]);
sur Windows et avec le debugger de code::block ,j'ai pu accéder au variable res alors que sous Linux 
et avec le  GDB il me dit ($1=<value optimized out>)

on plus j'ai même pas le même contenu pour les autres variables entre les deux plateforme pourtant je suis sur la meme ligne , meme instruction

#include "MCharImage.h"
#include "MDetecteur.h"
#include "MListePI.h"
//#include "MListeCouples.h"
#include "MUtils.h"

using namespace std;
using namespace local_vis_eric;

int main (int argc,char** argv)

{
  MCheckCpu();
    if (argc==3)
  {
    //Ouverture des images
        cout << "ouverture des images" << endl;
        MCharImage Image1,Image2;
        Image1.Load(argv[1]);
        Image2.Load(argv[2]);

        cout<<"toto est la "<<endl;
        cout << "ouverture des images ok" << endl;
        int x=Image1.x();
        int y=Image2.y();

        cout << " dim : " << x << " " << y << endl;
    //Detection des points

        MDetecteurHarris Detecteur1(x,y),Detecteur2(x,y);
        MListePI ListePI1,ListePI2;

        int res = Detecteur1.DetecteBaquets(Image1,ListePI1,8,8,20,500,true);
        cout << "Npoints : " << res << endl; //Subpixel=true

        Detecteur2.DetecteBaquets(Image2,ListePI2,8,8,20,500,true); //Subpixel=true
        cout << ListePI1.getNbPoints() << " ; " << ListePI2.getNbPoints() << endl;

    }
        else cout << "Usage : exemple image1.pgm image2.pgm" << endl;
    //system("pause");
    return 0;
}

Hors ligne

#4 Le 19/04/2011, à 11:14

Uda

Re : debugger [Résolu]

As tu vérifié que ton programme a bien été compiler avec l'option -g sous linux ?

Il y a aussi l'interface graphique Nemiver sous gnome qui est un peu plus simple et intuitive que DDD.

Dernière modification par Uda (Le 19/04/2011, à 11:15)

Hors ligne

#5 Le 19/04/2011, à 11:38

shadowless

Re : debugger [Résolu]

oui j'ai mis tous les flags qu'il faut sur mon makefile
CFXXLAGS=-W -Wall -ansi -c -g -O3 -mtune=core2 -mmmx -msse -msse2 -mssse3 -Wno-strict-aliasing

Hors ligne

#6 Le 19/04/2011, à 14:24

Le Farfadet Spatial

Re : debugger [Résolu]

Salut à tous !

shadowless a écrit :

oui j'ai mis tous les flags qu'il faut sur mon makefile
CFXXLAGS=-W -Wall -ansi -c -g -O3 -mtune=core2 -mmmx -msse -msse2 -mssse3 -Wno-strict-aliasing

   Pour le débogage, je te conseille d'utiliser plutôt les drapeaux suivants :

CXXFLAGS=-ansi -pedantic -Wall -g

   Certains des drapeaux que tu as activés posent problème avec C++ ou avec le débogage.

   À bientôt.

Le Farfadet Spatial

Hors ligne

#7 Le 19/04/2011, à 14:47

shadowless

Re : debugger [Résolu]

j ai changé les flags mais tjrs le même problème
j'ai déclaré un autre variable pour faire un teste mais il me donne toujours la même choses quant je fais print:

(gdb) print x
$ <value optimized out>
int main (int argc,char** argv)

{
  int xx1=0;
  MCheckCpu();
   ..........



}

Hors ligne

#8 Le 19/04/2011, à 15:03

Le Farfadet Spatial

Re : debugger [Résolu]

Salut à tous !

shadowless a écrit :

j ai changé les flags mais tjrs le même problème

   Curieux. Essaye ceci :

CXXFLAGS=-O0 -ansi -pedantic -Wall -g

   Également, j'aimerais que tu me donnes le résultat des commandes suivantes :

$ gcc -v
$ gdb -v

   Peux-tu donner un exemple complet minimal, c'est-à-dire du code qui compile et qui contient tout pour reproduire ton problème, mais uniquement ce qu'il faut pour reproduire ton problème ?

   À bientôt.

Le Farfadet Spatial

Hors ligne

#9 Le 19/04/2011, à 15:51

shadowless

Re : debugger [Résolu]

Résultat de la commande gcc -v 

elhajjaji@elhajjaji-laptop:~/WINDOWS/version1/harris$ gcc -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.4.1-4ubuntu9' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i486 --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.4.1 (Ubuntu 4.4.1-4ubuntu9) 

Résultat de la commande gdb -v 

elhajjaji@elhajjaji-laptop:~/WINDOWS/version1/harris$ gdb -v
GNU gdb (GDB) 7.0-ubuntu
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.

pour l'exemple vous avez deja le code en haut et je vais essayer  de vous montrer  ce que j'obtiens  avec le GDB

elhajjaji@elhajjaji-laptop:~/WINDOWS/version1/harris$ make
g++ -o toto main.o McharImage.o MCorrelation.o MDetecteur.o MFloatImage.o MHomographie.o MListePI.o MParamsIntrinseques.o MShortImage.o MSignedShortImage.o MUtils.o Matrix33.o jtmatrix.o  

[color=#DF1F59]elhajjaji@elhajjaji-laptop:~/WINDOWS/version1/harris$ gdb toto -q[/color]
Reading symbols from /home/elhajjaji/WINDOWS/version1/harris/toto...done.
(gdb) list
3    #include "MListePI.h"
4    //#include "MListeCouples.h"
5    #include "MUtils.h"
6    
7    using namespace std;
8    using namespace local_vis_eric;
9    
10    int main (int argc,char** argv)
11    
12    {
[color=#E31C34](gdb) list[/color]
13    
14      MCheckCpu();
15      //MSetWithMmxSseUse(2);  //0->pas de SIMD, 1->MMX et SSE (Pentium 3 et AMD), 2->SSE2 (Pentium 4)
16    
17      if (argc==3)
18      {
19        //Ouverture des images
20            cout << "ouverture des images" << endl;
21            MCharImage Image1,Image2;
22            Image1.Load(argv[1]);
(gdb) list
23            Image2.Load(argv[2]);
24            cout<<"toto est la "<<endl;
25            cout << "ouverture des images ok" << endl;
26            int x=Image1.x();
27            int y=Image2.y();
28    
29            cout << " dim : " << x << " " << y << endl;
30        //Detection des points
31        // Attention : utiliser un detecteur diffent pour chaque image
32        // Les detecteurs doivent etre conserves pour l'appariement
(gdb) break 26
Breakpoint 1 at 0x804a8c1: file main.cpp, line 26.
(gdb) run 1000001.pgm 1000005.pgm 
Starting program: /home/elhajjaji/WINDOWS/version1/harris/toto 1000001.pgm 1000005.pgm
ouverture des images
toto est la 
ouverture des images ok

Breakpoint 1, main (argc=3, argv=0xbffff4b4) at main.cpp:26
26            int x=Image1.x();
(gdb) print x
[color=#E4E01A]$1 = <value optimized out>[/color]

Hors ligne

#10 Le 19/04/2011, à 16:03

Le Farfadet Spatial

Re : debugger [Résolu]

Salut à tous !

   Bon, j'ai tes versions de GCC et de GDB.

shadowless a écrit :

pour l'exemple vous avez deja le code en haut

   Ce code a des dépendances qui ne sont pas la bibliothèque standard, ce qui rend sa compilation problématique (ça nécessite d'installer une kyrielle de bibliothèques juste pour un test). Essaye de produire un exemple qui ne nécessite que la bibliothèque standard.

   À bientôt.

Le Faradet Spatial

Hors ligne

#11 Le 19/04/2011, à 17:17

shadowless

Re : debugger [Résolu]

merci , c'est résolus
a bientot

Hors ligne

#12 Le 20/04/2011, à 15:29

Le Farfadet Spatial

Re : debugger [Résolu]

Salut à tous !

shadowless a écrit :

merci , c'est résolus

   Parfait. Ajoute la balise « [Résolu] » dans ton titre et ce serait bien également que tu indiques ce qui n'allait pas et comment tu as résolu le problème.

   À bientôt.

Le Farfadet Spatial

Hors ligne

#13 Le 20/04/2011, à 16:01

shadowless

Re : debugger [Résolu]

je ne trouve pas comment modifier le titre et ajouter cette balise
et comment j ai résolus le problème,
sur le debug du Cood::blocks même avant d'atteindre l'instruction qui manipule le variable ça te permet d'afficher son contenu même par fois il s'agit juste d'une valeur aléatoire  que le système donne à ce variable , alors que c'est le contraire avec GDB sous linux il faut soit initialiser le variable ou bien attendre qu'il soit manier dans une instruction

merci encore pour votre AiDe

Hors ligne

#14 Le 21/04/2011, à 16:32

Le Farfadet Spatial

Re : debugger [Résolu]

Salut à tous !

shadowless a écrit :

je ne trouve pas comment modifier le titre et ajouter cette balise

   Sur ton premier message, clique sur « Modifier ». Ensuite, ajoute la balise dans le titre.

par fois il s'agit juste d'une valeur aléatoire  que le système donne à ce variable

   En C++, les variables n'ont pas de valeur initiale donnée par défaut : elle prend la valeur présente dans la case mémoire (ou le registre) qui lui a été alloué, sauf si l'on a produit du code spécial pour l'initialisation.

   À bientôt.

Le Farfadet Spatial

Hors ligne