Comment faire pour activer gdb assez d'impression pour le C++ STL objets dans Eclipse CDT?
Je suis en train d'ajouter assez d'impression pour STL objets dans eclipse cdt. J'ai essayé de suivre les étapes décrites ici:
http://sourceware.org/gdb/wiki/STLSupport
J'ai vérifié le python dossier, mais je n'arrive pas à obtenir ce fait...
J'ai créé un gdbinit et sélectionné pour ma configuration de débogage, mais chaque fois que j'essaie de démarrer le débogage j'obtiens l'erreur suivante:
Error while executing Python code.
!STACK 0
java.lang.Exception: /home/lizardking/workspace/eu.sofia.kpi.cpp.x86.testapp/.gdbinit:6: Error in sourced command file:
Error while executing Python code.
at org.eclipse.cdt.dsf.mi.service.command.AbstractMIControl$RxThread.processMIOutput(AbstractMIControl.java:824)
at org.eclipse.cdt.dsf.mi.service.command.AbstractMIControl$RxThread.run(AbstractMIControl.java:662)
Si j'essaie d'exécuter le contenu de gdbinit dans une interface python, j'obtiens cette erreur:
Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
import sys
sys.path.insert(0, '/home/Documents/python')
from libstdcxx.v6.printers import register_libstdcxx_printers
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named libstdcxx.v6.printers
Il semble que je n'ai pas de type de module...je n'ai pas la moindre idée de Python, donc je ne sais même pas ce qu'est un "module" est en Python....
Quelqu'un peut-il m'aider? Il est très important pour moi d'être en mesure de voir les informations de débogage, ou utile pour mettre de cette façon. Ou d'une certaine manière je peux debug même à partir de la console et de faire belle sortie de gdb, parce que si je vais imprimer une chaîne de caractères par exemple je reçois inutile de sortie....
Ce qui concerne,
Alex
Vous devez vous connecter pour publier un commentaire.
C'est la solution qui fonctionne pour moi.
Télécharger ( http://www.gnu.org/software/gdb/download/) et installez la dernière version de gdb (c'est à dire avec l'option --prefix $HOME). Il prend en charge les scripts python.
Obtenir python très imprimantes par l'exécution de
dans un répertoire de votre choix (c'est à dire $(HOME)/distribs/gdb_printers). Vous obtiendrez 'python' sous-répertoire dans la caisse de répertoire.
Mettre ceci dans votre $(HOME)/.gdbinit fichier avec chemin d'accès correct à très imprimantes:
Ce fait assez d'impression utilisable via l'interface de ligne de commande de gdb (
>(gdb) p my_std_string
).Suivant explique l'utilisation pendant le débogage dans Eclipse.
Télécharger ( http://download.eclipse.org/eclipse/downloads/) le dernier Flux Stable de Construire ou de Version d'Eclipse (>=3.7 version).
Télécharger ( http://download.eclipse.org/tools/cdt/builds/8.0.0/index.html pour Eclipse Indigo ou http://www.eclipse.org/cdt/downloads.php pour Eclipse Juno) dernière Eclipse C/C++ outils de Développement (Eclipse CDT).
Exécuter Eclipse et a choisi de l'espace de travail répertoire où vos options seront stockées (c'est à dire $HOME/projets). Cliquez sur Aide->Installer de Nouveaux Logiciels... Cliquez sur Ajouter...->Archive... et choisir le CDT construire que vous venez de télécharger. Ensuite, vous devez choisir les composants à installer: cliquez sur CDT Caractéristiques Principales -> C/C++ Outils de Développement (et éventuellement d'autres composants de votre choix). Puis procéder à l'installation et redémarrez Eclipse.
Spécifier l'emplacement approprié de gdb et .gdbinit dans Eclipse et assurez-vous que la Jolie Impression est activée:
Maintenant, vous pouvez voir des conteneurs STL jolie-imprimé en vue des Variables pendant le débogage dans Eclipse.
D'autres commandes peuvent être utilisées pour faire gdb sortie plus décent:
Mise à JOUR: en ce qui Concerne la faire fonctionner de vieux projets, voir le point 4) dans rustyx réponse ci-dessous.
UPDATE2: ubuntu 12.04 a libstdc++6-4.6-dbg qui s'installe dans /usr/share/gcc-4.6/python/libstdcxx/module python pour vous
Je sais que cela ne répond pas à la question d'origine, mais j'ai pensé qu'il pourrait être utile pour ceux qui débogage dans Eclipse sur Windows /MinGW. La procédure pour Windows est similaire:
1) Obtenir Python 2.7.x de http://python.org/download/
2) Créer
.gdbinit
quelque part contenant quelque chose comme ceci:3) Configurer Eclipse CDT utiliser
C:\MinGW\bin\gdb-python27.exe
que le débogueur et votre.gdbinit
que le fichier de configuration.4) Re-créer votre debug lancement de la session (supprimer l'ancien et d'en créer un nouveau à partir de zéro).
Je voudrais élargir la Windows 7 de réponse parce que certaines étapes clés sont laissés de côté:
C'est pour MinGW utilisateurs avec Eclipse CDT
0) Si vous ne disposez pas de python GDB, ouvrir un shell/commande et de l'utilisation MinGW-get.exe pour "installer"
Python-activé GDB par exemple
1a) Obtenir Python 2.7.x de http://python.org/download/ et installer
1b) assurez-vous que PYTHONPATH et PYTHONHOME sont définies dans votre environnement:
1c) Ajouter PYTHONHOME à votre CHEMIN d'accès
2a) Ouvrez un texte entrez, entrez les instructions suivantes. Avis de la 3e ligne est
pointant vers l'endroit où les scripts python sont situés. Voir les notes ci-dessous à propos de ce!
2b) Enregistrer sous".gdbinit' REMARQUE: l'explorateur Windows ne vous laissera pas de nom d'un fichier qui commence par
avec une période de l'explorateur. La plupart des modifications de texte (y compris le bloc-notes) qui vous permettra de. GDB init
les fichiers sont comme " des scripts de commandes GDB que la CMM va exécuter au chargement.
2c) La".gdbinit' le fichier doit être dans le répertoire de travail de GDB (le plus probable c'est
vos projets répertoire racine mais votre IDE peut vous le dire.
3) Ouvrez votre Eclipse (ou d'autres IDE) boîte de dialogue Préférences. Aller à la C++ Débogueur sous-menu.
4) Configurer Eclipse pour utiliser
C:\MinGW\bin\gdb-python27.exe
que le débogueur et votre.gdbinit
que le fichier de configuration.5a) Re-créer tous vos debug configurations de lancement (supprimer l'ancien et d'en créer un nouveau à partir de zéro).
5b) Modifier chaque configuration de débogage et de pointer vers le nouveau gdb-python.exe ET de pointer vers l'.
Si vous avez des questions:
--N'oubliez pas de changer l'emplacement de l'python dans le répertoire ci-dessus le code python!
Ce répertoire est créé par MinGW, donc ne pas aller à la recherche de télécharger la jolie imprimantes, MinGW
il l'a fait pour vous à l'étape zéro. Juste goto votre MinGW installer directeur, le dossier de partage,
la GCC dossier (le numéro de version) et vous trouverez python dossier. Ce site est ce
devrait être dans le script python chargé par GDB.
--Aussi, l' .gdbinit est un pain PITA, assurez-vous que son nom correctement et dans le dossier de travail de GDB
ce qui n'est pas forcément là où gdb-python.exe est situé! Regardez votre GDB sortie lors du chargement de GDB pour voir si a) la "python-activé" s'affiche pendant le chargement et que les déclarations dans le .gdbinit apparaissent.
--Enfin, j'ai eu beaucoup de problèmes avec les variables système. Si python vous donne "ImportError' est alors probable que vous n'avez pas mis le PYTHONPATH ou PYTHONHOME.
--Le répertoire 'gdb-python27' (par ex. C:\MinGW\bin") devraient également être sur votre chemin et si elle l'est, elle permet la mise en place de l'éclipse un peu mieux, parce que vous n'avez pas besoin de mettre des chemins absolus. Mais encore, parfois, l' .gbdinit besoin d'un absoulte chemin. si cela fonctionne, vous verrez la sortie de la cmm (console->gdb traces) de ce genre sur le démarrage du débogueur:
Si vous suivez les accepté de répondre à et UPDATE2 et gdb reçoit un message d'erreur comme ceci:
C'est parce que votre version de gdb est à l'aide de Python 3 (à confirmer avec cette réponse)
Une solution de contournement pour ce problème est expliqué ici
Sinon, suivez les instructions pour obtenir le code source à partir de svn://gcc.gnu.org, qui est compatible Python 3
pour afficher STL objets dans Eclipse CDT, je le fais et cela fonctionne très bien:
http://www.yolinux.com/TUTORIALS/GDB-Commands.html#STLDEREF
(numéro de l'option 2 dans le lien que vous avez envoyé)
Espère que cette aide