https://github.com/python/cpython/commit/058bc182b97fd5721e28d4ab84cebe703cf0d2d9
commit: 058bc182b97fd5721e28d4ab84cebe703cf0d2d9
branch: main
author: Frost Ming <[email protected]>
committer: gaogaotiantian <[email protected]>
date: 2025-10-28T23:12:12-07:00
summary:
gh-139940: Handle RuntimeError when attaching to a non-existing process in pdb.
(#139941)
files:
A Misc/NEWS.d/next/Library/2025-10-11-09-07-06.gh-issue-139940.g54efZ.rst
M Lib/pdb.py
M Lib/test/test_remote_pdb.py
diff --git a/Lib/pdb.py b/Lib/pdb.py
index f695a39332e461..4ee12d17a611e6 100644
--- a/Lib/pdb.py
+++ b/Lib/pdb.py
@@ -3577,7 +3577,13 @@ def main():
parser.error("argument -m: not allowed with argument --pid")
try:
attach(opts.pid, opts.commands)
- except PermissionError as e:
+ except RuntimeError:
+ print(
+ f"Cannot attach to pid {opts.pid}, please make sure that the
process exists "
+ "and is using the same Python version."
+ )
+ sys.exit(1)
+ except PermissionError:
exit_with_permission_help_text()
return
elif opts.module:
diff --git a/Lib/test/test_remote_pdb.py b/Lib/test/test_remote_pdb.py
index ec11e41678849b..ede99de981971a 100644
--- a/Lib/test/test_remote_pdb.py
+++ b/Lib/test/test_remote_pdb.py
@@ -1590,5 +1590,17 @@ def test_attach_to_process_with_colors(self):
self.assertNotIn("while x == 1", output["client"]["stdout"])
self.assertIn("while x == 1", re.sub("\x1b[^m]*m", "",
output["client"]["stdout"]))
+ def test_attach_to_non_existent_process(self):
+ with force_color(False):
+ result = subprocess.run([sys.executable, "-m", "pdb", "-p",
"999999"], text=True, capture_output=True)
+ self.assertNotEqual(result.returncode, 0)
+ if sys.platform == "darwin":
+ # On MacOS, attaching to a non-existent process gives
PermissionError
+ error = "The specified process cannot be attached to due to
insufficient permissions"
+ else:
+ error = "Cannot attach to pid 999999, please make sure that the
process exists"
+ self.assertIn(error, result.stdout)
+
+
if __name__ == "__main__":
unittest.main()
diff --git
a/Misc/NEWS.d/next/Library/2025-10-11-09-07-06.gh-issue-139940.g54efZ.rst
b/Misc/NEWS.d/next/Library/2025-10-11-09-07-06.gh-issue-139940.g54efZ.rst
new file mode 100644
index 00000000000000..2501135e657e7d
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2025-10-11-09-07-06.gh-issue-139940.g54efZ.rst
@@ -0,0 +1 @@
+Print clearer error message when using ``pdb`` to attach to a non-existing
process.
_______________________________________________
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]