https://github.com/python/cpython/commit/e245ed7d1e23b5c8bc0d568bd1a2f06ae92d631a
commit: e245ed7d1e23b5c8bc0d568bd1a2f06ae92d631a
branch: main
author: Tian Gao <[email protected]>
committer: gaogaotiantian <[email protected]>
date: 2024-07-03T11:30:20-07:00
summary:
gh-118714: Make the pdb post-mortem restart/quit behavior more reasonable
(#118725)
files:
A Misc/NEWS.d/next/Library/2024-05-07-17-38-53.gh-issue-118714.XXKpVZ.rst
M Lib/pdb.py
M Lib/test/test_pdb.py
diff --git a/Lib/pdb.py b/Lib/pdb.py
index 4af16d0a087c8c..85a3aa2e37996f 100644
--- a/Lib/pdb.py
+++ b/Lib/pdb.py
@@ -2481,9 +2481,12 @@ def main():
traceback.print_exception(e, colorize=_colorize.can_colorize())
print("Uncaught exception. Entering post mortem debugging")
print("Running 'cont' or 'step' will restart the program")
- pdb.interaction(None, e)
- print(f"Post mortem debugger finished. The {target} will "
- "be restarted")
+ try:
+ pdb.interaction(None, e)
+ except Restart:
+ print("Restarting", target, "with arguments:")
+ print("\t" + " ".join(sys.argv[1:]))
+ continue
if pdb._user_requested_quit:
break
print("The program finished and will be restarted")
diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py
index 71240157e324a1..5c7445574f5d75 100644
--- a/Lib/test/test_pdb.py
+++ b/Lib/test/test_pdb.py
@@ -3545,6 +3545,23 @@ def change_file(content, filename):
# the file as up to date
self.assertNotIn("WARNING:", stdout)
+ def test_post_mortem_restart(self):
+ script = """
+ def foo():
+ raise ValueError("foo")
+ foo()
+ """
+
+ commands = """
+ continue
+ restart
+ continue
+ quit
+ """
+
+ stdout, stderr = self.run_pdb_script(script, commands)
+ self.assertIn("Restarting", stdout)
+
def test_relative_imports(self):
self.module_name = 't_main'
os_helper.rmtree(self.module_name)
diff --git
a/Misc/NEWS.d/next/Library/2024-05-07-17-38-53.gh-issue-118714.XXKpVZ.rst
b/Misc/NEWS.d/next/Library/2024-05-07-17-38-53.gh-issue-118714.XXKpVZ.rst
new file mode 100644
index 00000000000000..f41baee303482a
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2024-05-07-17-38-53.gh-issue-118714.XXKpVZ.rst
@@ -0,0 +1,2 @@
+Allow ``restart`` in post-mortem debugging of :mod:`pdb`. Removed restart
message
+when the user quits pdb from post-mortem mode.
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]