Python 调试器不会在断点处停止

Python 调试器不会在断点处停止

我处于基于 Linux 的开发环境中,没有超级用户权限。

我的基本问题是,我通过 pdb 在 emacs 中设置的断点从不起作用。调试器从不会在这些断点处停止。

在调查了这个问题之后,我怀疑这是因为断点的路径与文件的真实路径不匹配。

首先,我从命令行看到的路径如下:

/home/me/a/b

但管理员已将其设置为 /home/me 实际上是指向隐藏挂载的符号链接

/.hidden/x/me/a/b

当我从启动 emacs/home/me/a/b并尝试通过发出然后test.py在此目录中进行调试时,缓冲区上的标题显示文件的完整路径是M-x pdbpdb test.pygud

/.hidden/x/me/a/b/test.py

然后,当我尝试使用在 python 文件中设置断点时M-x space,我在缓冲区中看到的提示gud

Breakpoint X at /home/me/a/b/test.py:Y

因此,断点位于 下方,/home/me/a/b/test.py但缓冲区标题处的文件路径gud/.hidden/x/me/a/b/test.py。并且调试器永远不会在断点处停止,这非常烦人。

cd当我明确进入/.hidden/x/me/a/b/并启动 emacs时,我的怀疑得到了证实。然后我可以设置断点,调试器确实会停在这些断点上。

目前,我的解决方案是明确cd进入正确的路径并启动 emacs。

但是有更好的解决方案吗?是通过 emacs、bash 还是 python?

答案1

你可以强制 emacs 总是使用绝对实名打开文件:

(setq find-file-visit-truename t)

相关内容