Frage : pydb und DDD nach Programmende

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
momo
User
Beiträge: 9
Registriert: Donnerstag 19. März 2009, 17:52

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
nuss
User
Beiträge: 53
Registriert: Donnerstag 28. August 2008, 11:36

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.
momo
User
Beiträge: 9
Registriert: Donnerstag 19. März 2009, 17:52

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
BlackJack

Alternativ wäre http://winpdb.org/ vielleicht einen Blick wert.
momo
User
Beiträge: 9
Registriert: Donnerstag 19. März 2009, 17:52

Danke ! Den schaue ich mir mal an.

CU momo
Antworten