Отладчик Python не останавливается на точках останова

781
JasonMond

Я нахожусь в среде разработки на основе Linux, где у меня нет прав суперпользователя.

Моя основная проблема в том, что точки останова, которые я установил в emacs через pdb, никогда не работают. Отладчик никогда не останавливается на этих точках останова.

После изучения этой проблемы, я подозреваю, что это потому, что путь точки останова не совпадает с истинным путем файла.

Во-первых, путь, который я вижу из командной строки, выглядит следующим образом:

/home/me/a/b 

Но администраторы настроили его так, что / home / me на самом деле является символической ссылкой на скрытое монтирование

/.hidden/x/me/a/b 

Когда я запускаю emacs from /home/me/a/bи пытаюсь отлаживать test.pyв этом каталоге, выдавая M-x pdbи затем pdb test.py, заголовок в gudбуфере утверждает, что полный путь к файлу

/.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

1 ответ на вопрос

1
Tiago

You can force emacs to always open files using absolute real names:

(setq find-file-visit-truename t) 

Похожие вопросы