[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