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说:“***空白或者注释”,这意味着行的记数不破。该功能内的断点正常工作。奇怪...感谢您的解决方案! –