Controlling Eclipse CDT debugger-Ausgabe?
Bei der Verwendung von CDT ich würde gerne std::string show bis in die 'variable' debug-Fenster mit der Zeichenfolge enthält. Zum Beispiel, wenn es gerade in der Hand hält, das Wort "Geschichte" ich würde gerne sehen, Geschichte im debugger-Fenster mit der Bezeichnung "Variablen".
Ich denke, dass es einen Allgemeinen Weg, es zu haben, einen Drilldown-Objekte, aber ich kann nicht meinen finger auf Sie. Hat jemand da draußen wissen, wie dies zu tun?
Dies wäre auch nützlich für mich zu verwenden, wenn die Ausgabe nur ein einzelnes Feld aus einem komplexen Objekt.
Dank,
Bill
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beachten Sie, dass Sie nicht wollen, eine Allgemeine Art der Drill-down in Objekte; Sie wollen pretty-print STL-Containern.
Ich denke, CDT Delegierten diese an den debugger backend; D. H. es ist bis zu Ihrer debugger (gdb, vielleicht?) informieren CDT über den Wert einer Variablen und wie es erweitert werden kann.
Edit: ich glaube nicht, dass die GDB backend versendet mit CDT hat keine Unterstützung für die "intelligente" Anzeige von STL-Containern. Wenn Sie wirklich interessiert, würde ich vorschlagen, dass Sie Kontaktieren Sie den CDT-development-team an [email protected].
Update/Edit: siehe andere Antworten unten für Anweisungen zum aktivieren von ziemlich Druckern in CDT.
Anzeigen von stl-Containern mit eclipse/gdb war auch ein großer Schmerz für mich, für eine lange Zeit.
Aber jetzt habe ich gerade entdeckt, dass die neueste version von gdb mit python aktiviert ist, können helfen.
Es folgt, was ich gemacht habe (Ubuntu Linux 8.10):
Erstellen Sie eine Datei mit dem Namen .gdbinit im Projekt root mit dem folgenden Inhalt:
python import von gdb.libstdcxx.v6.Drucker
Nun die stl-Container werden ziemlich gedruckt.
Wenn Sie möchten, um zu überprüfen, ob Sie bereits ein python-aktiviert gdb (oder wenn Ihr neue installation gearbeitet habe):
Auf die gdb-Eingabeaufforderung führen Sie die folgenden
(gdb) python-print 'Python-aktiviert GDB arbeiten!'
Wenn der obige Befehl erzeugt das, was wir erwarten, dann ist es arbeiten.
Für mehr details überprüfen Sie dieser blog.
(gdb) python print('Python enabled GDB is working!')
(ie. Aufruf drucken mit Klammern) ? Ohne Sie gab es mir einenSyntaxError: Missing parentheses in call to 'print'
Windows 7
Bekommen, die ziemlich Druckern:
svn co svn://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/python
Einrichten von eclipse mit:
C/C++ - Debug-Gdb:
Möchte ich erweitern, auf dem Windows 7-Antwort, denn einige wichtige Schritte sind:
Dies ist für MinGW-Benutzer, die mit Eclipse CDT
0), Wenn Sie nicht über python GDB, öffnen Sie eine shell/command und verwenden MinGW-get.exe zu 'installieren'
Python-aktiviert GDB z.B.
1a) abrufen von Python 2.7.x von http://python.org/download/ und installieren
1b) Stellen Sie sicher, dass PYTHONPATH und PYTHONHOME in Ihrem Umfeld:
1c) Hinzufügen PYTHONHOME auf Ihrem WEG
2a) Öffnen Sie einen text eingeben, geben Sie die folgenden Anweisungen. Beachten Sie die 3. Zeile ist
zeigte auf, wo die python-Skripte befinden. Siehe Anmerkungen unten dazu!
2b) Speichern unter '.gdbinit' HINWEIS: Windows-explorer lassen Sie nicht den Namen einer Datei, die beginnt mit
mit einer Zeit von explorer. Die meisten Textänderungen (inklusive Editor) lassen Sie. GDB-init
Dateien sind wie 'Skripte' der GDB-Befehle, die GBD wird ausgeführt nach dem laden.
2c) in Der '.gdbinit' - Datei muss im Arbeitsverzeichnis des GDB (dies ist am wahrscheinlichsten
Ihre Projekte root-Verzeichnis, aber die IDE kann es dir sagen.
3) Öffnen Sie Ihre Eclipse (oder einer anderen IDE) Dialogfeld "Voreinstellungen". Gehen Sie zu C++ - Debugger sub-Menü.
4) Konfigurieren Sie Eclipse verwenden
C:\MinGW\bin\gdb-python27.exe
wie Sie den debugger und Ihre.gdbinit
als config-Datei.5a) erstellen Sie alle Ihre debug-Startkonfigurationen (löschen des alten und erstellen Sie eine neue von Grund auf neu).
5b) Bearbeiten Sie die einzelnen debug-Konfiguration und zeigen Sie es auf die neue gdb-python.exe UND verweisen Sie auf die.
Wenn Sie laufen in Probleme:
--Vergessen Sie nicht, ändern Sie den Pfad zu dem python-Verzeichnis in das obige python-code!
Dieses Verzeichnis ist erstellt durch MinGW, so gehen Sie nicht auf der Suche nach download die ziemlich Druckern, MinGW
hat es für Sie in Schritt null. Nur gehe MinGW installieren, Leiter, Ordner freigeben,
die GCC-Ordner (Versionsnummer) und finden Sie python-Ordner. Dieser Ort ist, was
sollte in einem python-Skript geladen, durch GDB.
--Auch, die .gdbinit ist ein PITA, stellen Sie sicher sein, richtig benannt und in den Arbeitsordner des GDB
das ist nicht unbedingt, wo gdb-python.exe liegt! Schauen Sie auf Ihre GDB-Ausgabe beim laden des GDB um zu sehen, ob a) "python-aktiviert" angezeigt wird, während der laden und die Anweisungen in der .gdbinit erscheinen.
--Endlich, ich hatte eine Menge Probleme mit der system-Variablen. Wenn python gibt Sie 'ImportError', dann haben Sie wahrscheinlich PYTHONPATH nicht gesetzt ist oder PYTHONHOME.
--Das Verzeichnis mit 'gdb-python27' (z.B. C:\MinGW\bin') sollte auch auf Ihrem Weg, und wenn es ist, es macht die Einrichtung von eclipse ein bisschen schöner, weil Sie nicht brauchen, um in absolute Pfade. Aber immer noch, manchmal .gbdinit muss eine absoulte Pfad. wenn es funktioniert, sehen Sie die Ausgabe von gbd (Konsole->gdb Spuren), wie dies beim starten des debugger:
Die einzige Möglichkeit, die ich gefunden habe, ist die Benutzung des GDB command line:
Es ist direkt unterhalb der stack-trace.
up
Befehl aus, um den stack-frame, den Sie möchtenWieder in die Konsole verwenden Sie das Fenster
print
Befehl zum anzeigen derstd::string
variable:p mystring
Aber das ist eine Menge ärger.
Etwas, was ich bemerkt habe ist, dass wenn ich den Cursor über die variable, die Felder von std::string die eigentlich angezeigt werden, aber es ist abgeschnitten, so dass ich nicht sehen, der interessanteste Teil: der string-Wert. Gibt es vielleicht eine Möglichkeit, erhöhen Sie die maximale Länge des Wertes angezeigt.
billcoke Ihre besten Schuss ist die Nutzung von einigen gdb-Makros, die Sie eingeben können, in die gdb-Konsole, die geöffnet werden können, in der Konsole/Debugger-Fenster in eclipse. Sie können finden Sie hier:
http://www.yolinux.com/TUTORIALS/src/dbinit_stl_views-1.01.txt
wird es nicht automatisch auf zu schweben, aber Sie haben zu geben, die anstrengend ist.... aber auch im Jahr 2009 die eclipse CDT ist aber nicht gelungen, bringt uns einige schöne debugging-Funktionen, so ist dies Ihr bestes.
ZU RPSENG:
danke für den Tipp rpseng! es funktioniert gut! leider scheint mein eclipse (Ganymede) bekommt so verwirrt, dass es nicht zu entdecken, mehr der Typ von Zeigern auf Instanzen meiner eigenen-aus Klassen und deren Vererbung, so treten wenn die Variablen dieser Zeiger ist nicht mehr möglich. Arbeiten Sie mit CDT 6.0 und es funktioniert dort besser?