为什么在符号链接目录中使用代码时 pdb 不会在断点处停止?



我正在使用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)

它仍然有点臭,因为它需要更多的击键。

最新更新