Commit 23ae488f authored by Terry Jan Reedy's avatar Terry Jan Reedy

Issue #16180: Exit pdb if file has syntax error, instead of trapping user

in an infinite loop.  Patch by Xavier de Gaye.
parent bda9bd1d
......@@ -1322,6 +1322,9 @@ def main():
# In most cases SystemExit does not warrant a post-mortem session.
print "The program exited via sys.exit(). Exit status: ",
print sys.exc_info()[1]
except SyntaxError:
traceback.print_exc()
sys.exit(1)
except:
traceback.print_exc()
print "Uncaught exception. Entering post mortem debugging"
......
......@@ -69,6 +69,17 @@ class PdbTestCase(unittest.TestCase):
any('main.py(5)foo()->None' in l for l in stdout.splitlines()),
'Fail to step into the caller after a return')
def test_issue16180(self):
# A syntax error in the debuggee.
script = "def f: pass\n"
commands = ''
expected = "SyntaxError:"
stdout, stderr = self.run_pdb(script, commands)
self.assertIn(expected, stdout,
'\n\nExpected:\n{}\nGot:\n{}\n'
'Fail to handle a syntax error in the debuggee.'
.format(expected, stdout))
class PdbTestInput(object):
"""Context manager that makes testing Pdb in doctests easier."""
......
......@@ -37,6 +37,9 @@ Core and Builtins
Library
-------
- Issue #16180: Exit pdb if file has syntax error, instead of trapping user
in an infinite loop. Patch by Xavier de Gaye.
- Issue #22812: Fix unittest discovery examples.
Patch from Pam McA'Nulty.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment