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
Möglichkeit ein Programm zeilenweise auszuführen
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:
Wenn ich dann die Shell starte, springt er sofort in den 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<<
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
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)_
>>Masaru<<
Zuletzt geändert von Masaru am Dienstag 20. September 2005, 19:38, insgesamt 1-mal geändert.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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
Jedoch ist debuggen eine Kunst für sich
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Lustig ist ja die Warnung auf der Homepage:Leonidas hat geschrieben:oder der grafische Winpdb
Don't try Winpdb on scripts that import PSYCO or a profiler of any kind, or your machine will explode to tiny little pieces.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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.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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Versuchs mal mit Boa Constructor - ist ne komplette IDE - der Debugger ist auch ganz OK wenn sich mal dran gewöhnt hat.