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.
)
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
""")
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: