[Python-checkins] cpython (merge 3.4 -> 3.5): merge from 3.4
terry.reedy
python-checkins at python.org
Sun Sep 6 01:19:02 CEST 2015
https://hg.python.org/cpython/rev/611c732f7632
changeset: 97688:611c732f7632
branch: 3.5
parent: 97684:1c55f169f4ee
parent: 97687:2d4aac2ab253
user: Terry Jan Reedy <tjreedy at udel.edu>
date: Sat Sep 05 19:17:24 2015 -0400
summary:
merge from 3.4
files:
Lib/pdb.py | 3 +++
Lib/test/test_pdb.py | 12 ++++++++++++
Misc/NEWS | 3 +++
3 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/Lib/pdb.py b/Lib/pdb.py
--- a/Lib/pdb.py
+++ b/Lib/pdb.py
@@ -1669,6 +1669,9 @@
# 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")
diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py
--- a/Lib/test/test_pdb.py
+++ b/Lib/test/test_pdb.py
@@ -1043,6 +1043,18 @@
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)
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -14,6 +14,9 @@
Library
-------
+- Issue #16180: Exit pdb if file has syntax error, instead of trapping user
+ in an infinite loop. Patch by Xavier de Gaye.
+
- Issue #24891: Fix a race condition at Python startup if the file descriptor
of stdin (0), stdout (1) or stderr (2) is closed while Python is creating
sys.stdin, sys.stdout and sys.stderr objects. These attributes are now set
--
Repository URL: https://hg.python.org/cpython
More information about the Python-checkins
mailing list