aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorTian Gao <gaogaotiantian@hotmail.com>2024-03-15 02:36:04 -0700
committerGitHub <noreply@github.com>2024-03-15 09:36:04 +0000
commita50cf6c3d76b34e2ee9f92a248f1b0df24e407f6 (patch)
tree5d7a7957df72fad5521457a1086e28214b65d267
parent8fc8fbb43a8bb46c04ab55f96049039de243afb0 (diff)
downloadcpython-a50cf6c3d76b34e2ee9f92a248f1b0df24e407f6.tar.gz
cpython-a50cf6c3d76b34e2ee9f92a248f1b0df24e407f6.zip
gh-90095: Ignore empty lines and comments in `.pdbrc` (#116834)
-rw-r--r--Doc/library/pdb.rst3
-rwxr-xr-xLib/pdb.py5
-rw-r--r--Lib/test/test_pdb.py19
-rw-r--r--Misc/NEWS.d/next/Library/2024-03-14-20-59-28.gh-issue-90095.7UaJ1U.rst1
4 files changed, 26 insertions, 2 deletions
diff --git a/Doc/library/pdb.rst b/Doc/library/pdb.rst
index 1cfca0cf68a..ac3007f70c3 100644
--- a/Doc/library/pdb.rst
+++ b/Doc/library/pdb.rst
@@ -288,7 +288,8 @@ There are three preset *convenience variables*:
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 f4d19386703..88ea900e63f 100755
--- a/Lib/pdb.py
+++ b/Lib/pdb.py
@@ -364,7 +364,10 @@ class Pdb(bdb.Bdb, cmd.Cmd):
)
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 44728542787..69691e93056 100644
--- a/Lib/test/test_pdb.py
+++ b/Lib/test/test_pdb.py
@@ -2933,8 +2933,27 @@ def bœr():
""")
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 00000000000..b7024c74f7a
--- /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``