GNU bug report logs - #79036
[PATCH] Fix pdb tracking for remote filenames

Previous Next

Package: emacs;

Reported by: Liu Hui <liuhui1610 <at> gmail.com>

Date: Thu, 17 Jul 2025 04:59:01 UTC

Severity: normal

Tags: patch

Done: Eli Zaretskii <eliz <at> gnu.org>

Full log


View this message in rfc822 format

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Liu Hui <liuhui1610 <at> gmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 79036 <at> debbugs.gnu.org, kobarity <kobarity <at> gmail.com>
Subject: bug#79036: [PATCH] Fix pdb tracking for remote filenames
Date: Thu, 17 Jul 2025 15:44:52 +0200
Liu Hui <liuhui1610 <at> gmail.com> writes:

 Hi,

>> > Because file-name may be not the actual file. file-name is actually
>> > extracted from the pdb output in the python shell, e.g.
>> >
>> >     >>> f()
>> >     > /ssh:server:/tmp/test.py(3)f()
>> >     (Pdb)
>> >
>> > Generally, pdb shows local file names. But if we send the code using
>> > C-c C-c from python buffers (i.e. step 3), python-send-string passes
>> > (buffer-file-name), which may be a remote file name, to python
>> > process. Therefore, pdb may also shows remote file names.
>>
>> This is an error. python-send-string shall send (file-local-name (buffer-file-name)) .
>
> Why is it an error? In python-shell-send-string, (buffer-file-name) is
> finally passed to python's compile function in __PYTHON_EL_eval or
> __PYTHON_EL_eval_file, and is just used for run-time error messages
> according to the docstring.
>
>    The filename argument should give the file from which the code was
>    read; pass some recognizable value if it wasn’t read from a file
>    ('<string>' is commonly used).
>
> I think it is suitable to use a remote filename or even buffer name as
> long as it helps Emacs find the source.

This bug report is about an inconsistenccy in pdb. Sometimes it shows
absolute file names which should be interpreted as remote file
names. Sometimes, the file names are already prefixed with the remote
identification.

If python-shell-send-string does not use remote file names, your patch
isn't needed. The existing code

--8<---------------cut here---------------start------------->8---
  (let* ((file-name-prospect (concat (file-remote-p default-directory)
                              file-name))
--8<---------------cut here---------------end--------------->8---

would be OK.

Best regards, Michael.




This bug report was last modified 1 day ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.