You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Change in pdb behavior at exit from post-mortem debugger #118714
In 3.12 and earlier, if user enters quit/exit commands or does Ctrl-D, pdb restarts script with corresponding message and exits only on repeated quit/exit/Ctrl-D:
$ python -m pdb -c c pdb_bug.py
Traceback (most recent call last):
File "/usr/local/lib/python3.11/pdb.py", line 1775, in main
pdb._run(target)
File "/usr/local/lib/python3.11/pdb.py", line 1643, in _run
self.run(target.code)
File "/usr/local/lib/python3.11/bdb.py", line 600, in run
exec(cmd, globals, locals)
File "<string>", line 1, in <module>
File "/home/radislav/projects/cpython/pdb_bug.py", line 1, in <module>
raise ValueError()
ValueError
Uncaught exception. Entering post mortem debugging
Running 'cont' or 'step' will restart the program
> /home/radislav/projects/cpython/pdb_bug.py(1)<module>()
-> raise ValueError()
(Pdb) quit
Post mortem debugger finished. The /home/radislav/projects/cpython/pdb_bug.py will be restarted
> /home/radislav/projects/cpython/pdb_bug.py(1)<module>()
-> raise ValueError()
(Pdb) quit
$
Since fa18b0a only message is printed, but Python exits completely:
$ ./python -m pdb -c c pdb_bug.py
Traceback (most recent call last):
...
File "/home/radislav/projects/cpython/pdb_bug.py", line 1, in <module>
raise ValueError()
ValueError
Uncaught exception. Entering post mortem debugging
Running 'cont' or 'step' will restart the program
> /home/radislav/projects/cpython/pdb_bug.py(1)<module>()
-> raise ValueError()
(Pdb) quit
Post mortem debugger finished. The /home/radislav/projects/cpython/pdb_bug.py will be restarted
$
@gaogaotiantian, what's your opinion? Should we restore the old behavior or remove confusing message about "restart"? As I can see, pdb docs doesn't state explicitly what quit/exit commands should do in post-mortem debugger.
I think we should make quit quit and restart restart. It's inconsistent for the post-mortem debugger to have a different behavior. We noticed the user that cont and step will restart the program, which is fine and has been the case for a really long time, but quit should not just quit the post mortem debugger and enter the normal debugger, they should explicitly ask a restart.
So we need to do something about the message - I'll work on that. This is a bug fix so it doesn't have to be merged before beta freeze.
Activity
gaogaotiantian commentedon May 7, 2024
I think we should make
quitquit andrestartrestart. It's inconsistent for the post-mortem debugger to have a different behavior. We noticed the user thatcontandstepwill restart the program, which is fine and has been the case for a really long time, butquitshould not just quit the post mortem debugger and enter the normal debugger, they should explicitly ask a restart.So we need to do something about the message - I'll work on that. This is a bug fix so it doesn't have to be merged before beta freeze.
gh-118714: Make the pdb post-mortem restart/quit behavior more reason…
pythongh-118714: Make the pdb post-mortem restart/quit behavior more …
[3.13] gh-118714: Make the pdb post-mortem restart/quit behavior more…
pythongh-118714: Make the pdb post-mortem restart/quit behavior more …
ambv commentedon Jul 14, 2024
Should this still be open?
gaogaotiantian commentedon Jul 14, 2024
Fixed in #118725
pythongh-118714: Make the pdb post-mortem restart/quit behavior more …