[Python-checkins] cpython (merge 3.5 -> default): Merge with 3.5

terry.reedy python-checkins at python.org
Sun Sep 6 01:19:02 CEST 2015


https://hg.python.org/cpython/rev/127ac263354e
changeset:   97689:127ac263354e
parent:      97685:b045465e5dba
parent:      97688:611c732f7632
user:        Terry Jan Reedy <tjreedy at udel.edu>
date:        Sat Sep 05 19:17:49 2015 -0400
summary:
  Merge with 3.5

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
@@ -101,6 +101,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