Python-Debugger wird nicht an Haltepunkten angehalten

935
JasonMond

Ich befinde mich in einer Linux-basierten Entwicklungsumgebung, in der ich keine Superuser-Berechtigungen habe.

Mein grundlegendes Problem ist, dass die Haltepunkte, die ich in emacs über pdb einstelle, niemals funktionieren. Der Debugger hält an diesen Haltepunkten nie an.

Nach Untersuchung dieses Problems habe ich den Verdacht, dass der Pfad des Haltepunkts nicht mit dem tatsächlichen Pfad der Datei übereinstimmt.

Der Pfad, den ich von der Kommandozeile aus sehe, sieht folgendermaßen aus:

/home/me/a/b 

Aber die Administratoren haben es so eingerichtet, dass / home / me eigentlich ein Symlink zu einem versteckten Mount ist

/.hidden/x/me/a/b 

Als ich Emacs starte aus /home/me/a/bund versuche, zu debuggen, test.pyin diesem Verzeichnis durch die Ausgabe M-x pdbund dann pdb test.pydie Kopfzeile auf dem gudbesagten Puffer für den vollständigen Pfad der Datei ist

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

Wenn ich dann versuche, einen Haltepunkt in der Python-Datei festzulegen M-x space, erscheint die Aufforderung, die ich im gudPuffer sehe

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

Der Haltepunkt ist also unter, /home/me/a/b/test.pyaber der Dateipfad am Header des gudPuffers /.hidden/x/me/a/b/test.py. Und der Debugger bleibt niemals am Haltepunkt stehen, was sehr ärgerlich ist.

Ich erhalte eine Bestätigung meiner Vermutungen, wenn ich ausdrücklich cdin /.hidden/x/me/a/b/und dann Emacs starten. Dann kann ich Haltepunkte setzen und der Debugger stoppt bei ihnen.

Derzeit ist meine Lösung, explizit cdin den richtigen Pfad zu gehen und emacs zu starten.

Gibt es bessere Lösungen? Sei es durch Emacs, Bash oder Python?

1

1 Antwort auf die Frage

1
Tiago

Sie können emacs zwingen, Dateien immer mit absoluten Namen zu öffnen:

(setq find-file-visit-truename t)