Issue #16180: Exit pdb if file has syntax error, instead of trapping user
in an infinite loop. Patch by Xavier de Gaye.
This commit is contained in:
parent
6fb5bae252
commit
ca3f435fe6
|
@ -1669,6 +1669,9 @@ def main():
|
|||
# In most cases SystemExit does not warrant a post-mortem session.
|
||||
print("The program exited via sys.exit(). Exit status:", end=' ')
|
||||
print(sys.exc_info()[1])
|
||||
except SyntaxError:
|
||||
traceback.print_exc()
|
||||
sys.exit(1)
|
||||
except:
|
||||
traceback.print_exc()
|
||||
print("Uncaught exception. Entering post mortem debugging")
|
||||
|
|
|
@ -1043,6 +1043,18 @@ class PdbTestCase(unittest.TestCase):
|
|||
self.assertNotIn('Error', stdout.decode(),
|
||||
"Got an error running test script under PDB")
|
||||
|
||||
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))
|
||||
|
||||
|
||||
def tearDown(self):
|
||||
support.unlink(support.TESTFN)
|
||||
|
||||
|
|
Loading…
Reference in New Issue