4

どうやらPythonでデバッグする方法を学ばなかったようです。

を実行しましたが、例外が発生すると、プログラム変数にアクセスできず、やなどのbpython3 -i myfile.pyコマンドも見つかりません。gdbupdown

私はそれをいじってみましたimport pdbが、あまり得られませんでした。そして、それは間違いなく bpython に統合されていません。

私が覚えている限り、それは のように非常に簡単でしgdbたが、どうやら私の記憶が間違っていて、今では無知です。Python デバッガーに関するオンラインの情報は混乱しており、あいまいであり、以前使用していたものと同様のものを見つけることができなかったので、ここで質問するようになりました。

4

1 に答える 1

2

bpython3インタラクティブな Python シェルの単なるインターフェースです。gdb のようなデバッグには、gdb のようなコマンドをサポートするpdbを使用します。

$ python3 -m pdb t.py 
> /tmp/t.py(2)<module>()
-> def a():
(Pdb) c
Traceback (most recent call last):
  File "/usr/lib/python3.2/pdb.py", line 1556, in main
    pdb._runscript(mainpyfile)
  File "/usr/lib/python3.2/pdb.py", line 1437, in _runscript
    self.run(statement)
  File "/usr/lib/python3.2/bdb.py", line 405, in run
    exec(cmd, globals, locals)
  File "<string>", line 1, in <module>
  File "/tmp/t.py", line 2, in <module>
    def a():
  File "/tmp/t.py", line 4, in a
    b()
  File "/tmp/t.py", line 7, in b
    1/0
ZeroDivisionError: division by zero
Uncaught exception. Entering post mortem debugging
Running 'cont' or 'step' will restart the program
> /tmp/t.py(7)b()
-> 1/0
(Pdb) up
> /tmp/t.py(4)a()
-> b()
(Pdb) print x
1

デバッガーとして bpython(3) を使用する場合は、いくつかのグルー コードを含める必要があります。

于 2012-07-03T18:23:36.460 に答える