Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1544 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  gdb, c++ et difficultés d'utilisation

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

gdb, c++ et difficultés d'utilisation

n°801546
farib
Posté le 21-07-2004 à 10:35:47  profilanswer
 

je rencontre quelques difficultés à utiliser gdb avec le c++ ( je suis en phase d'apprentissage, il est probable que certaines méthodes m'échappent )
 
==> comment placer un breakpoint sur une méthode de la classe mère pour un objet dérivé ?
 
Par exemple, Qt est fortement orienté objet, et un QPushButton hérite de sa classe mère QWidget la méthode resize
 
comment pouvoir dire à gdb de poser un breakpoint sur
 
QPushButton::resize ?
 
(sans dire de faire un breakpoint sur QWidget::resize ? qui inclurait des objets ne m'intéressant pas )
 
====> préciser un breakpoint par un numéro de ligne ne semble pas toujours marcher
 
j'ai peut etre oublié de faire une manipulation, mais par exemple, pour stopper dans une méthode de classe, je précise un numéro de ligne, mais le programme ne se stoppe pas sur le breakpoint
  :heink:  
 
des idées de solutions à mes problèmes
 
par avance, merci


---------------
Bitcoin, Magical Thinking, and Political Ideology
mood
Publicité
Posté le 21-07-2004 à 10:35:47  profilanswer
 

n°801551
kadreg
profil: Utilisateur
Posté le 21-07-2004 à 10:39:20  profilanswer
 

utiliser une surcouche au lieu de se la péter avec un truc inutilisable ?


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°801641
farib
Posté le 21-07-2004 à 11:33:33  profilanswer
 

c'est à dire ?
 
si c'est une surcouche à GDB dont tu parles, j'ai bien essayé avec kdevelop, mais sans succès, donc je suis repassé sur le gdb en ligne de commande pour tenter de voir ce qui ne marchait pas
 


---------------
Bitcoin, Magical Thinking, and Political Ideology
n°802301
farib
Posté le 21-07-2004 à 18:50:42  profilanswer
 

j'ai testé en utilisant ddd, ça me fait exactement les mêmes problèmes


---------------
Bitcoin, Magical Thinking, and Political Ideology
n°802306
el muchach​o
Comfortably Numb
Posté le 21-07-2004 à 18:53:59  profilanswer
 

Tu compiles avec -ggdb3 ou au moins -g ?


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°802315
farib
Posté le 21-07-2004 à 19:15:41  profilanswer
 

-g, mais je vais ressayer avec ggdb3
 
les résutats sont variables en fait, par exemple, ça s'arrete bien sur les breakpoints du main sans broncher


---------------
Bitcoin, Magical Thinking, and Political Ideology
n°802350
el muchach​o
Comfortably Numb
Posté le 21-07-2004 à 20:10:07  profilanswer
 

Tu es sûr que le source est bien en accord avec l'exécutable ?  Il arrive souvent que tes sources soient plus récents que tes binaires, et ça fout la merde, mais gdb te l'indique normalement. Mais quand même, je conseillerais une recompilation complète.


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°802362
farib
Posté le 21-07-2004 à 20:23:11  profilanswer
 

oui, ça je suis sûr, vu que j'ai recompilé 500 fois les choses


---------------
Bitcoin, Magical Thinking, and Political Ideology
n°802841
Taz
bisounours-codeur
Posté le 22-07-2004 à 10:48:12  profilanswer
 

il te faut une version de Qt avec des symboles de débuggages également.

n°802995
farib
Posté le 22-07-2004 à 12:21:39  profilanswer
 

Taz a écrit :

il te faut une version de Qt avec des symboles de débuggages également.


 
hum oui et non
 
sur mes fonctions internes, quand je définis un constructeur de classe dérivée, y'a tout les symboles qu'il faut pour s'arreter à la bonne ligne


---------------
Bitcoin, Magical Thinking, and Political Ideology
mood
Publicité
Posté le 22-07-2004 à 12:21:39  profilanswer
 

n°802998
Taz
bisounours-codeur
Posté le 22-07-2004 à 12:22:39  profilanswer
 

toutes façons, tu mets un break point avec le numéro de la ligne (ou tu cliques carrément dessus) et voilà ... je comprends pas ou est ton problème

n°803053
frenchkiss
Posté le 22-07-2004 à 13:19:44  profilanswer
 

il me semble que tu peux aussi specifier le breakpoint par la methode:
b
QPushButton::resize  
c
 

n°803166
farib
Posté le 22-07-2004 à 14:34:21  profilanswer
 

Taz a écrit :

toutes façons, tu mets un break point avec le numéro de la ligne (ou tu cliques carrément dessus) et voilà ... je comprends pas ou est ton problème


 
j'essaye de te dire que tout simplement : " ça marche pas "
 
le programme ne s'arrete pas sur le breakpoint, bien que je voit le débogueur qui dit l'avoir mis.
 
c'est ce que j'essaye de dire depuis le 1er post...


---------------
Bitcoin, Magical Thinking, and Political Ideology
n°803186
Taz
bisounours-codeur
Posté le 22-07-2004 à 14:43:50  profilanswer
 

c'est pas possible. soit tu as mal compilé, soit tu as mal mis ton break point. est-ce que tu arrives à breaker ou que ce soit ?

n°803260
farib
Posté le 22-07-2004 à 15:24:12  profilanswer
 

bein écoute, je sais pas quoi te dire moi non plus...
 
par exemple, sur les fonctions, ça breake bien sur le constructeur de ma classe
 
breakpoint que j'ai setté avec: b 'toto::toto'
 
en laissant gdb déterminer l'endroit, il le règle bien
 
par contre, le breakpoint setté par numéro de ligne dans ce même constructeur, lui il est pas respecté...


Message édité par farib le 22-07-2004 à 15:24:54

---------------
Bitcoin, Magical Thinking, and Political Ideology
n°803319
frenchkiss
Posté le 22-07-2004 à 15:47:20  profilanswer
 

t es bien sur que les fichiers que tu vois sont bien ceux de la version du programme que tu debug?
 t as jamais remarquerun decalage dans les numero de ligne par exemple?
 
et tu utilisa la bonne syntaxe pour spevifier un point d'arret connaissant le numero de ligne?
 
 
 
 

n°803328
farib
Posté le 22-07-2004 à 15:54:10  profilanswer
 

normalement, j'en suis sûr et certain, je suis plus à ça près, une fois de plus, je reprendrais depuis le début en nettoyant toutes les sources des lignes identations superflues, et make cleanant en profondeur...


---------------
Bitcoin, Magical Thinking, and Political Ideology
n°803961
el muchach​o
Comfortably Numb
Posté le 23-07-2004 à 09:12:45  profilanswer
 

Tu évites de mettre plusieurs instructions par ligne, hein ?
(genre tu passes une copie de ton code à l'indenteur artistic style)
Tu évites les macros aussi (à remplacer par des fonctions inline) ?
Tu as suffisamment de mémoire pour faire tourner en debug ?
Tu utilises bcp de templates ?
Si tu réponds oui aux 3 premières questions et non à la 3e, je ne vois pas de raison pour que gdb perde les pédales. Jette un oeil aux bugs répertoriés.


Message édité par el muchacho le 23-07-2004 à 09:17:16

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°804086
farib
Posté le 23-07-2004 à 10:36:30  profilanswer
 

el muchacho a écrit :

Tu évites de mettre plusieurs instructions par ligne, hein ?


 
Il y a peut être un ou deux endroits ou y'a 2 instructions ( faut que je vérifie), mais c'est pas là que je mets mes breakpoits).

el muchacho a écrit :


Tu évites les macros aussi (à remplacer par des fonctions inline) ?
 

Zéro macro perso, homi celles qui sont inhérentes à Qt

el muchacho a écrit :


Tu as suffisamment de mémoire pour faire tourner en debug ?


512 Mo, donc ça va

el muchacho a écrit :

Tu utilises bcp de templates ?  


 
Juste un type de template, fourni par Qt.
 
 
En fait, par exemple, si je lui dit de breaker à la l'implémentation d'un constructeur de classe, en donnant le nom de la fonction, ça breake  bien.
 
Si je lui donnne la ligne correspondante, ça marche bien.
 
Ce qui est étrange, c'est que j'ai testé sur un sample de code et que ça marche nickel, mais pour l'appli Qt, ça veut plus marcher. Donc je continue de chercher ce qui pourrait merder.


Message édité par farib le 23-07-2004 à 10:39:30

---------------
Bitcoin, Magical Thinking, and Political Ideology

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  gdb, c++ et difficultés d'utilisation

 

Sujets relatifs
Utilisation d'une fonction écrite en C++Utilisation d'une fonction d'une dll
utilisation de carryutilisation du pool de connexions proxool : autocommit impossible !?
Utilisation d'une DLL C++ en VB[XML] utilisation d'un JEditorPane
Utilisation du composite report : pbUtilisation de session
[Tips] Utilisation de masques avec OracleConseil pour l'utilisation du xml dans une appli
Plus de sujets relatifs à : gdb, c++ et difficultés d'utilisation


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR