Skip to content

Change in pdb behavior at exit from post-mortem debugger #118714

Closed

Description

@chgnrdv

Bug report

Bug description:

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.

CPython versions tested on:

CPython main branch

Operating systems tested on:

Linux

Linked PRs

Activity

  1. added
    type-bugAn unexpected behavior, bug, or error
    on May 7, 2024
  2. gaogaotiantian commented on May 7, 2024

    @gaogaotiantian
    Member

    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.

  3. added a commit that references this issue on Jul 3, 2024
  4. added a commit that references this issue on Jul 3, 2024
  5. added a commit that references this issue on Jul 3, 2024
  6. added a commit that references this issue on Jul 11, 2024
  7. ambv commented on Jul 14, 2024

    @ambv
    Contributor

    Should this still be open?

  8. gaogaotiantian commented on Jul 14, 2024

    @gaogaotiantian
    Member

    Fixed in #118725

  9. added a commit that references this issue on Jul 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    type-bugAn unexpected behavior, bug, or error

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions