我正在使用Python-3.7.3。我有两个文件:
tmp/add.py
def add(a,b):
print("hello")
return(a+b)
tmp/main.py
from add import add
a=9
b=10
c=add(a,b)
如果我跑
$ python -m pdb tmp/main.py
> /home/user/tmp/main.py(1)<module>()
-> from add import add
(Pdb) b add.py : 2
Breakpoint 1 at /home/user/tmp/add.py:2
(Pdb) c
> /home/user/tmp/add.py(2)add()
-> print("hello")
(Pdb)
pdb
在断点上正确停止。 现在,如果我创建一个指向该目录(ln -s tmp poo
(的符号链接并尝试在符号链接目录上运行pdb
:
$ python -m pdb poo/main.py
<function save_history at 0x2aaab21e1f28>
> /home/user/poo/main.py(1)<module>()
-> from add import add
(Pdb) b add.py : 2
Breakpoint 1 at /home/user/tmp/add.py:2
(Pdb) c
hello
The program finished and will be restarted
显然,pdb
未能在断点处停止,并且符号链接遇到困难。
问题
有没有办法解决这个问题,或者我只是被困在代码所在的目录并在那里运行pdb
?
似乎对此的解决方案是键入文件的完整路径。
即
from add import add
(Pdb) b /home/user/poo/add.py : 2
Breakpoint 1 at /home/user/poo/add.py:2
(Pdb) c
> /home/user/poo/add.py(2)add()
-> print("hello")
(Pdb)
它仍然有点臭,因为它需要更多的击键。