Seite 1 von 1

Frage : pydb und DDD nach Programmende

Verfasst: Sonntag 12. April 2009, 12:01
von momo
Hallo liebes Python Forum,

ich würde gerne unter Linux ein Python Script mit DDD und dem pydb debuggen. An einer bestimmten Stelle steigt das Programm nun z.B. mit einem "Key Error" aus. Der pydb beendet sich nun und DDD startet ihn neu.
Ich möchte mir bestimmte Variablen ansehen, um auf den Fehler zu kommen. Leider geht das nicht weil pydb neu gestartet wurde und alles weg ist. Ich habe versucht vor die Stelle im Programm einen Breakpoint zusetzen, aber das geht nicht, weil pydb das Programm immer erst komplett ausführen will:

(pydb) file programm.py

oder

(pydb) break programm.py : 285

Führen nicht zum gewünschten Ergebnis. Kann mir jemand einen Tipp geben, wie ich das anstelle ?

CU momo

Verfasst: Sonntag 12. April 2009, 12:09
von nuss
ist pydb der gleiche debugger wie pdb?
dann probiers mal mit

Code: Alles auswählen

import pdb
pdb.set_trace()
an der stelle an der du nachgucken möchtest.

funktioniert allerdings nur, wenn der Fehler beim ersten durchlauf stattfindet,
ansonsten musst du unter umständen eine ewigkeit 'n' drücken.

Verfasst: Sonntag 12. April 2009, 12:43
von momo
Hallo nuss !

Danke, mit dem pdb geht es so. Der pydb scheint da etwas anders zu sein. Er kennt den Befehl zwar, und wenn ich mein Script mit

python Script.py

starte habe ich dann auch an der richtigen Stelle einen pydb-Prompt, aber im DDD läuft das Programm einfach weiter.

Immerhin kann ich mir so anzeigen lassen, was ich wollte, auch wenn man sich nicht ganz so schön grafisch an binären Bäumen entlang hangeln kann wie mit dem DDD.

CU momo

Verfasst: Sonntag 12. April 2009, 12:46
von BlackJack
Alternativ wäre http://winpdb.org/ vielleicht einen Blick wert.

Verfasst: Sonntag 12. April 2009, 15:09
von momo
Danke ! Den schaue ich mir mal an.

CU momo