Skip to content

Commit

Permalink
pythongh-90095: Ignore empty lines and comments in .pdbrc (python#1…
Browse files Browse the repository at this point in the history
  • Loading branch information
gaogaotiantian authored and diegorusso committed Apr 17, 2024
1 parent 71cfaa4 commit 3c159c5
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 2 deletions.
3 changes: 2 additions & 1 deletion Doc/library/pdb.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down
5 changes: 4 additions & 1 deletion Lib/pdb.py
Original file line number Diff line number Diff line change
Expand Up @@ -364,7 +364,10 @@ def setup(self, f, tb):
)

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
Expand Down
19 changes: 19 additions & 0 deletions Lib/test/test_pdb.py
Original file line number Diff line number Diff line change
Expand Up @@ -2933,8 +2933,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:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Ignore empty lines and comments in ``.pdbrc``

0 comments on commit 3c159c5

Please sign in to comment.