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 :

Debugger ne veux pas fonctionner


Sujet :

Code::Blocks

Vue hybride

uriotcea Debugger ne veux pas... 03/10/2008, 19h20
ArnaudD Pour regarder les variables... 05/10/2008, 16h24
uriotcea J'etais absent mais, merci de... 07/10/2008, 20h12
ArnaudD Je ne vois pas très bien... 11/10/2008, 09h19
uriotcea Mois avec ma class B heritant... 11/10/2008, 10h47
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Par défaut Debugger ne veux pas fonctionner
    Bonjour,
    Je suis sous windows codeblock 8.02 & gcc
    Je suis en mode debug sans optimisation
    Quand je click sur une variable pour la watcher ca fonctionne trés bien temps quelle est local ou que c'est un argument de la fonction, mais dé quelle est global ou qu'un vient de l'object auquel appartient cette fonction

    j'ai le message: No symbol 'ma_variable' in current context.
    Qu'est ce qu'il va pas?
    J'en ai mare des printf pour debugger, quelles options faudrait-il mettre ?

    Merci d'avance

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Par défaut
    Pour regarder les variables membres, essaye en ajoutant un "watch" sur "*this"

  3. #3
    Membre éprouvé Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Par défaut
    J'etais absent mais, merci de ta reponse, j'ai essayé, effectivement je vois les membres de la class QT en fait toutes les objet de la class de base QT. mais ma class herite de la class de base Qt et contient des membre perso suplementaires et je ne vois aucun de ces membres

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Par défaut
    Je ne vois pas très bien pourquoi tu ne pourrais pas voir les membres de ta classe. Tu es sûr que tu te trouves bien dans une fonction de ta classe et pas dans celle héritée?

    Quand je rajoute une watch sur *this dans une classe B qui hérite d'une classe B, je vois la chose suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    *this
     \_ <A>
        \_ variables membres de ma classe A
        \_ ...
        \_ ...
     \_ variables membres de ma classe B
     \_ ...
     \_ ...
    Après je n'ai pas essayé en héritant d'une classe Qt mais tu devrais avoir la même chose en toute logique

  5. #5
    Membre éprouvé Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Par défaut
    Mois avec ma class B heritant de de ma class Qt A, quand je regarde *this dans une fonction de B, je ne vois que les membre de A sans même voire B dailleur. Peut-etre est ce la foncon d'heriter qui se presente comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    namespace Ui {
        class MainClass: public Ui_MainClass {};
    } // namespace Ui
     
    QT_END_NAMESPACE
     
    class MainClass : public QMainWindow, public Ui::MainClass
    {
      Q_OBJECT
    public:
    ..
    .
    };
    C'est un ecriture un peut etrange mais ca fonctionne

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Par défaut
    Première vérification, est-ce que ce code fait parti d'une librarie et que tu l'utilises à partir de ton programme principal? Si oui, est-ce que cette librairie est compilée en mode Debug? Dans les deux cas, est-ce que la case "Produce Debugging symbols [-g]" est bien cochée dans les options de compilation en mode debug?

    Seconde vérification : est-ce que ce n'est pas un problème lié à l'utilisation de Qt.

    Crée un projet console en C++, mets y le code suivant :
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    #include <iostream>
     
    using namespace std;
     
    class A
    {
      public:
        A() {};
        ~A() {};
     
        void print() { cout << "A::print()" << endl; };
    };
     
    class B
    {
      public:
        B() {};
        ~B() {};
     
        void print() { cout << "B::print()" << endl; };
    };
     
    class C: public B, public A
    {
      public:
        C() {};
        ~C() {};
     
        void print();
    };
     
    void C::print()
    {
      cout << "C::print()" << endl;
    }
     
    int main()
    {
      C c;
     
      c.print();
     
      return 0;
    }
    Place un point d'arrêt au niveau du cout dans la fonction C::print() execute en debug.

    Tu devrais avoir dans la partie watch la chose suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    *this
     \_ <B>
         \_ <No data fields>
     \_ <A>
         \_ <No data fields>
     \_ <No data fields>


    Si aucune des solutions ne fonctionne, soit gdb ou C::B doit être perdu avec l'implementation de Qt dans ton programme, soit je seche...

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/10/2014, 11h37
  2. trigger ne veux pas fonctionner
    Par HwRZxLc4 dans le forum jQuery
    Réponses: 2
    Dernier message: 30/04/2010, 10h21
  3. Mon portable ne veux pas fonctionner
    Par Bluescorpion26 dans le forum Composants
    Réponses: 2
    Dernier message: 04/12/2007, 04h26
  4. Kmail veux pas marcher sur mon serveur avec postfix
    Par jean christophe dans le forum Réseau
    Réponses: 4
    Dernier message: 06/05/2005, 01h02
  5. Réponses: 9
    Dernier message: 12/01/2005, 17h00

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