Sie können "pdb importieren" verwenden, aber hier zeigen wir Ihnen, wie Sie debuggen, ohne Änderungen am Quellcode vorzunehmen. Es werden nur häufig verwendete Befehle behandelt.
$ python -m pdb XXXXX.py
Oder
$ python3 -m pdb XXXXX.py
hello.py
msg = "Hello world"
def hello(txt):
print(txt)
hello(msg)
print("Done.")
--pdb Ausführungsbeispiel
$ python3 -m pdb hello.py
> /path/to/current/directory/hello.py(1)<module>()
-> msg = "Hello world"
(Pdb)
Sie können mit der Debugging-Arbeit fortfahren, indem Sie nach (Pdb)
einen Befehl eingeben.
Befehl | Funktion |
---|---|
b(reak) [Anzahl der Zeilen oder Funktionsname] | Setzen Sie einen Haltepunkt in eine Zeile oder Funktion |
c(ont(inue)) | Führen Sie es aus, bis der nächste Haltepunkt erreicht ist |
s(tep) | Führen Sie die aktuelle Zeile aus(Stoppen Sie bei einem Funktionsaufruf) |
n(ext) | Führen Sie die aktuelle Zeile aus(Wenn es sich um einen Funktionsaufruf handelt, führen Sie die Funktion aus) |
q(uit) | Beenden Sie den Debugger |
Sie können die Zeichen in Klammern im Befehl weglassen.
$ python3 -m pdb hello.py
> /path/to/current/directory/hello.py(1)<module>()
-> msg = "Hello world"
(Pdb) b 6
Breakpoint 1 at /path/to/current/directory/hello.py:6
(Pdb) c
> /path/to/current/directory/hello.py(6)<module>()
-> hello(msg)
(Pdb) s
--Call--
> /path/to/current/directory/hello.py(3)hello()
-> def hello(txt):
(Pdb) s
> /path/to/current/directory/hello.py(4)hello()
-> print(txt)
(Pdb) n
Hello world
--Return--
> /path/to/current/directory/hello.py(4)hello()->None
-> print(txt)
(Pdb) c
Done.
The program finished and will be restarted
> /path/to/current/directory/hello.py(1)<module>()
-> msg = "Hello world"
(Pdb) q
$
http://docs.python.jp/3/library/pdb.html
Recommended Posts