classification
Title: Pdb does not correclty restart the target if it changes the current directory
Type: behavior Stage: resolved
Components: Library (Lib) Versions: Python 3.10, Python 3.9, Python 3.8
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: gvanrossum, hexagonrecursion
Priority: normal Keywords: patch

Created on 2020-11-17 07:26 by hexagonrecursion, last changed 2021-01-26 15:58 by gvanrossum. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 23338 closed hexagonrecursion, 2020-11-17 11:36
PR 23412 merged hexagonrecursion, 2020-11-19 17:39
PR 24322 merged hexagonrecursion, 2021-01-25 08:55
PR 24323 merged hexagonrecursion, 2021-01-25 08:58
Messages (5)
msg381213 - (view) Author: Andrey Bienkowski (hexagonrecursion) * Date: 2020-11-17 07:26
This was mentioned in #31121, but I believe this deserves its own separate issue. If the debug target is specified using a relative path and later the current directory is changed, pdb tries to search for the target in the new current directory. This currently causes pdb to be unable to exit, which is what #31121 and #14743 are about, but even if they are fixed we would still be left with pdb exiting instead of restarting the target. This issues is about the latter.

To reproduce (same as #31121):

$ mkdir foo
$ cat > foo/script.py
import os
os.chdir('foo')
$ python3 -m pdb foo/script.py 
> /home/user/foo/script.py(1)<module>()
-> import os
(Pdb) c
The program finished and will be restarted
Traceback (most recent call last):
  File "/usr/lib64/python3.8/pdb.py", line 1704, in main
    pdb._runscript(mainpyfile)
  File "/usr/lib64/python3.8/pdb.py", line 1570, in _runscript
    with io.open_code(filename) as fp:
FileNotFoundError: [Errno 2] No such file or directory: 'foo/script.py'
Uncaught exception. Entering post mortem debugging
Running 'cont' or 'step' will restart the program
> /usr/lib64/python3.8/pdb.py(1570)_runscript()
-> with io.open_code(filename) as fp:
msg381216 - (view) Author: Andrey Bienkowski (hexagonrecursion) * Date: 2020-11-17 07:50
I'm working on fixing this
msg385665 - (view) Author: Guido van Rossum (gvanrossum) * (Python committer) Date: 2021-01-25 21:08
New changeset 501d4a51e32c7bbba255598adc307660b5af891a by Andrey Bienkowski in branch 'master':
bpo-42383: pdb: do not fail to restart the target if the current directory changed (#23412)
https://github.com/python/cpython/commit/501d4a51e32c7bbba255598adc307660b5af891a
msg385722 - (view) Author: Guido van Rossum (gvanrossum) * (Python committer) Date: 2021-01-26 15:58
New changeset f8cfe54e5a7082edcec74a34b3d7e6afab051afd by Andrey Bienkowski in branch '3.9':
[3.9] bpo-42383: pdb: do not fail to restart the target if the current directory changed (GH-23412) (#24322)
https://github.com/python/cpython/commit/f8cfe54e5a7082edcec74a34b3d7e6afab051afd
msg385723 - (view) Author: Guido van Rossum (gvanrossum) * (Python committer) Date: 2021-01-26 15:58
New changeset d863deeff27f00ac33e9f169d23ca56d69af3f86 by Andrey Bienkowski in branch '3.8':
 [3.8] bpo-42383: pdb: do not fail to restart the target if the current directory changed (GH-23412) (#24323)
https://github.com/python/cpython/commit/d863deeff27f00ac33e9f169d23ca56d69af3f86
History
Date User Action Args
2021-01-26 15:58:50gvanrossumsetstatus: open -> closed
resolution: fixed
stage: patch review -> resolved
2021-01-26 15:58:37gvanrossumsetmessages: + msg385723
2021-01-26 15:58:27gvanrossumsetmessages: + msg385722
2021-01-25 21:08:10gvanrossumsetnosy: + gvanrossum
messages: + msg385665
2021-01-25 08:58:59hexagonrecursionsetpull_requests: + pull_request23143
2021-01-25 08:55:18hexagonrecursionsetpull_requests: + pull_request23142
2020-11-28 20:12:16epainesettype: behavior
components: + Library (Lib)
versions: + Python 3.8, Python 3.9, Python 3.10
2020-11-19 17:39:16hexagonrecursionsetpull_requests: + pull_request22305
2020-11-17 11:36:56hexagonrecursionsetkeywords: + patch
stage: patch review
pull_requests: + pull_request22227
2020-11-17 07:50:17hexagonrecursionsetmessages: + msg381216
2020-11-17 07:26:31hexagonrecursioncreate