1

I'm in a linux based development environment where I don't have superuser permissions.

My basic issue is that the breakpoints I set in emacs through pdb never work. The debugger never halts at those breakpoints.

After investigating this issue, my suspicion is that it's because the path of the breakpoint doesn't match with the true path of the file.

First, the path that I see from the command line goes like this:

/home/me/a/b

But the administrators have set it up so that /home/me is actually a symlink to a hidden mount

/.hidden/x/me/a/b

When I launch emacs from /home/me/a/b and try to debug test.py in this directory by issuing M-x pdb and then pdb test.py, the header on the gud buffer states the full path of the file is

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

Then when I try to set a breakpoint in the python file with M-x space, the prompt I see in the gud buffer is

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

So the breakpoint is under /home/me/a/b/test.py but the filepath at the header of the gud buffer is /.hidden/x/me/a/b/test.py. And the debugger never stops at the breakpoint, which is very annoying.

I get a confirmation of my suspicions when I explicitly cd into /.hidden/x/me/a/b/ and then launch emacs. Then I can set breakpoints and the debugger does stop at them.

Currently, my solution is to explicitly cd into the proper path and launch emacs.

But are there better solutions? Be it through emacs, bash or python?

1

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

(setq find-file-visit-truename t)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.