https://github.com/python/cpython/commit/eaefa0b1f789443075fe867e8657fd9faa283f1b
commit: eaefa0b1f789443075fe867e8657fd9faa283f1b
branch: 3.11
author: Miss Islington (bot) <[email protected]>
committer: iritkatriel <[email protected]>
date: 2024-03-15T09:55:44Z
summary:

[3.11] gh-90095: Ignore empty lines and comments in `.pdbrc` (GH-116834) 
(#116855)

gh-90095: Ignore empty lines and comments in `.pdbrc` (GH-116834)
(cherry picked from commit a50cf6c3d76b34e2ee9f92a248f1b0df24e407f6)

Co-authored-by: Tian Gao <[email protected]>

files:
A Misc/NEWS.d/next/Library/2024-03-14-20-59-28.gh-issue-90095.7UaJ1U.rst
M Doc/library/pdb.rst
M Lib/pdb.py
M Lib/test/test_pdb.py

diff --git a/Doc/library/pdb.rst b/Doc/library/pdb.rst
index a845d5512ff1e5..1a949a2679dae4 100644
--- a/Doc/library/pdb.rst
+++ b/Doc/library/pdb.rst
@@ -269,7 +269,8 @@ is to use implicit string concatenation ``';'';'`` or 
``";"";"``.
 
 If a file :file:`.pdbrc` exists in the user's home directory or in the current
 directory, it is read with ``'utf-8'`` encoding and executed as if it had been
-typed at the debugger prompt.  This is particularly useful for aliases.  If 
both
+typed at the debugger prompt, with the exception that empty lines and lines
+starting with ``#`` are ignored.  This is particularly useful for aliases.  If 
both
 files exist, the one in the home directory is read first and aliases defined 
there
 can be overridden by the local file.
 
diff --git a/Lib/pdb.py b/Lib/pdb.py
index fd73f14a7ea66a..3077b0bfa523e4 100755
--- a/Lib/pdb.py
+++ b/Lib/pdb.py
@@ -297,7 +297,10 @@ def setup(self, f, tb):
         self.curframe_locals = self.curframe.f_locals
 
         if self.rcLines:
-            self.cmdqueue = self.rcLines
+            self.cmdqueue = [
+                line for line in self.rcLines
+                if line.strip() and not line.strip().startswith("#")
+            ]
             self.rcLines = []
 
     # Override Bdb methods
diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py
index 941031a5a9f6c2..d21ea9e5f7cddc 100644
--- a/Lib/test/test_pdb.py
+++ b/Lib/test/test_pdb.py
@@ -2061,8 +2061,27 @@ def test_pdbrc_basic(self):
         """)
 
         stdout, stderr = self.run_pdb_script(script, 'q\n', pdbrc=pdbrc, 
remove_home=True)
+        self.assertNotIn("SyntaxError", stdout)
         self.assertIn("a+8=9", stdout)
 
+    def test_pdbrc_empty_line(self):
+        """Test that empty lines in .pdbrc are ignored."""
+
+        script = textwrap.dedent("""
+            a = 1
+            b = 2
+            c = 3
+        """)
+
+        pdbrc = textwrap.dedent("""
+            n
+
+        """)
+
+        stdout, stderr = self.run_pdb_script(script, 'q\n', pdbrc=pdbrc, 
remove_home=True)
+        self.assertIn("b = 2", stdout)
+        self.assertNotIn("c = 3", stdout)
+
     def test_pdbrc_alias(self):
         script = textwrap.dedent("""
             class A:
diff --git 
a/Misc/NEWS.d/next/Library/2024-03-14-20-59-28.gh-issue-90095.7UaJ1U.rst 
b/Misc/NEWS.d/next/Library/2024-03-14-20-59-28.gh-issue-90095.7UaJ1U.rst
new file mode 100644
index 00000000000000..b7024c74f7aa7d
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2024-03-14-20-59-28.gh-issue-90095.7UaJ1U.rst
@@ -0,0 +1 @@
+Ignore empty lines and comments in ``.pdbrc``

_______________________________________________
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]

Reply via email to