23
我試圖調試模塊「主」,它調用一個函數「broken_function 「位於」another_module「的第356行。我在該函數中有一個錯誤,並希望在其開始處放置一個斷點。以下是列表。難道我做錯了什麼?原因,斷點不起作用:如何設置斷點在另一模塊(不要將其放置在函數定義行,如果你想開始執行功能時打破)
$ 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插入 「進口PDB; pdb.set_trace()」 –
好一點,謝謝!現在就試試。 –
你的建議完美地工作,但pdb的行爲看起來很奇怪。第356行是函數「def broken_function():」的第一行。如果我把斷點的下一行,在那裏居住的評論,PDB說:「***空白或者註釋」,這意味着行的記數不破。該功能內的斷點正常工作。奇怪...感謝您的解決方案! –