「another_module」の356行目で関数「broken_function」を呼び出すモジュール「main」をデバッグしようとしています。その関数でエラーが発生し、その開始点にブレークポイントを設定したいと思います。以下はリストです。私は何か間違ったことをしていますか?原因、ブレークポイントが機能しません。
$ python -m pdb main
(Pdb) import sys
(Pdb) sys.path.append("/home/user/path/to/another/module")
(Pdb) import another_module
(Pdb) b another_module:356
Breakpoint 1 at /home/user/path/to/another/module/another_module.py:356
(Pdb) c
Traceback (most recent call last):
...
File "/home/user/path/to/another/module/another_module.py", line 383, in broken_function
f=open("../jobs/temptree.tre", "r")
IOError: [Errno 2] No such file or directory: '../jobs/temptree.tre'
Uncaught exception. Entering post mortem debugging
...
ブレークポイントを正しく設定しています。中断しているコード行が呼び出されないため、停止していないと思います。 383行目に改行を入れます。
sys
やanother_module
をインポートすることなく、ファイルと行番号で直接ブレークポイントを設定することもできます。
(Pdb) b /home/user/path/to/another/module/another_module.py:383
Breakpoint 1 at /home/user/path/to/another/module/another_module.py:383
他の人が指摘しているように、/home/user/path/to/another/module/another_module.py
をインポートする必要があり、行383が実行可能であり、実行パスが壊れていることに注意してください。
さらにヘルプが必要な場合は、help b
と入力して(または、help
の後に他のコマンドを入力して)、そのコマンドの詳細情報を取得します。