Seite 1 von 1
Möglichkeit ein Programm zeilenweise auszuführen
Verfasst: Dienstag 20. September 2005, 19:07
von qweet
Hallo,
Ich hab jetzt ein größeres Programm geschrieben und habe jetzt darin einen logischen Fehler. Das Programm macht einfach nicht was es soll. Ich find den aber leider nicht.
Gibt es irgend eine Möglichkeit das Programm zeilenweise auszuführen? Ich hab keine wirklich Lust, jede Zeile in IDLE hinein zu kopieren.
Außerdem würde das auch gar nicht funktionieren, da ich WConio benutze.
Oder gibts vielleicht was, dass ich Variablen überwachen kann während des Programmablaufs?
mfg,
qweet
Verfasst: Dienstag 20. September 2005, 19:26
von Masaru
Ich glaube, der
Python Debugger (kurz: pdb) könnte dir da weiterhelfen.
Der
pdb ist ein Standardmodul (sowohl in 2.3 wie auch in 2.4), kannst du also ohne weitere Installationen importieren.
Ich entwickel auch gerade eine Shell-Erweiterung, welche ich mal im Aufruf wie folgt angepasst haben:
Code: Alles auswählen
def main():
# hier steht mein regulärer Shell-Code
if __name__ == '__main__':
import pdb
pdb.run('main()') # pdb.run erwartet einen "string" als Parameter
#main() #<- auskommentiert
Wenn ich dann die Shell starte, springt er sofort in den
pdb:
Code: Alles auswählen
C:\_WORK_\prog_snippets\python>shell.py
> <string>(1)?()
(Pdb) s
--Call--
> c:\_work_\prog_snippets\python\shell.py(50)main()
-> def main():
(Pdb) l
45 sys.exit('error')
46
47 return (True, None)
48
49
50 -> def main():
51 exit_code = None
52 #WConio.clrscr()
53 #WConio.textattr(WConio.YELLOW)
54 while 1:
55 (run_user_code, exit_code) = do_run_user_code()
(Pdb)_
Mit dem ersten pdb-Command "s" (step in) springe ich in die Methode, und mit "l" zeige ich mir gerade die Position im Quellcode (+/- 5 Zeilen drumherrum) an.
>>Masaru<<
Verfasst: Dienstag 20. September 2005, 19:29
von Leonidas
Was du willst ist ein
Debugger wie der textorientierte
Python debugger oder der grafische
Winpdb (und
HAP Debugger gibt's auch).
Jedoch ist debuggen eine Kunst für sich

Verfasst: Dienstag 20. September 2005, 19:41
von Masaru
... jupp, das stimmt.
Gerade der textorientierte *g*. Man braucht etwas Zeit, um sich einzuwurschteln.
Verfasst: Mittwoch 21. September 2005, 06:23
von jens
Leonidas hat geschrieben:oder der grafische
Winpdb
Lustig ist ja die Warnung auf der Homepage:
Don't try Winpdb on scripts that import PSYCO or a profiler of any kind, or your machine will explode to tiny little pieces.

Verfasst: Mittwoch 21. September 2005, 14:07
von Leonidas
jens hat geschrieben:Lustig ist ja die Warnung auf der Homepage:
Don't try Winpdb on scripts that import PSYCO or a profiler of any kind, or your machine will explode to tiny little pieces.

Ja, wäre mal lustig das auszuprobieren, hehe. Aber wer profilt und debuggt seine Programme denn gleichzeitig? Das ist ja premature optimalization, ich hätte lieber ein Programm das fehlerfrei ist, statt schnell und buggy.

Verfasst: Mittwoch 21. September 2005, 16:21
von qweet
danke leute.

Hab jetzt Winpdb benutzt und meinen Fehler gefunden

Yeephee

Aber ich werd mich wohl noch ein bischen reinwurschteln müssen
mfg,
qweet
Verfasst: Dienstag 27. September 2005, 07:54
von backarc
Versuchs mal mit Boa Constructor - ist ne komplette IDE - der Debugger ist auch ganz OK wenn sich mal dran gewöhnt hat.