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.
:lol:

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.
:lol:
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. :lol:

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.