mirror of
https://github.com/python/cpython.git
synced 2025-08-01 23:53:15 +00:00
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
3 changed files with 18 additions and 0 deletions
|
@ -1669,6 +1669,9 @@ def main():
|
||||||
# In most cases SystemExit does not warrant a post-mortem session.
|
# In most cases SystemExit does not warrant a post-mortem session.
|
||||||
print("The program exited via sys.exit(). Exit status:", end=' ')
|
print("The program exited via sys.exit(). Exit status:", end=' ')
|
||||||
print(sys.exc_info()[1])
|
print(sys.exc_info()[1])
|
||||||
|
except SyntaxError:
|
||||||
|
traceback.print_exc()
|
||||||
|
sys.exit(1)
|
||||||
except:
|
except:
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
print("Uncaught exception. Entering post mortem debugging")
|
print("Uncaught exception. Entering post mortem debugging")
|
||||||
|
|
|
@ -1043,6 +1043,18 @@ class PdbTestCase(unittest.TestCase):
|
||||||
self.assertNotIn('Error', stdout.decode(),
|
self.assertNotIn('Error', stdout.decode(),
|
||||||
"Got an error running test script under PDB")
|
"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):
|
def tearDown(self):
|
||||||
support.unlink(support.TESTFN)
|
support.unlink(support.TESTFN)
|
||||||
|
|
||||||
|
|
|
@ -81,6 +81,9 @@ Core and Builtins
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #16180: Exit pdb if file has syntax error, instead of trapping user
|
||||||
|
in an infinite loop. Patch by Xavier de Gaye.
|
||||||
|
|
||||||
- Issue #21112: Fix regression in unittest.expectedFailure on subclasses.
|
- Issue #21112: Fix regression in unittest.expectedFailure on subclasses.
|
||||||
Patch from Berker Peksag.
|
Patch from Berker Peksag.
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue