From: Guido van Rossum Date: Tue, 15 Jan 2008 17:59:29 +0000 (+0000) Subject: Issue #1786 (by myself): pdb should use its own stdin/stdout around an X-Git-Tag: v2.6a1~599 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cad3724352562a3a9b951b30c0b98b8f40c09dcf;p=python Issue #1786 (by myself): pdb should use its own stdin/stdout around an exec call and when creating a recursive instance. --- diff --git a/Lib/pdb.py b/Lib/pdb.py index 468b1d321d..e2ace87a40 100755 --- a/Lib/pdb.py +++ b/Lib/pdb.py @@ -199,7 +199,13 @@ class Pdb(bdb.Bdb, cmd.Cmd): globals = self.curframe.f_globals try: code = compile(line + '\n', '', 'single') - exec code in globals, locals + try: + sys.stdin = self.stdin + sys.stdout = self.stdout + exec code in globals, locals + finally: + sys.stdout = save_stdout + sys.stdin = save_stdin except: t, v = sys.exc_info()[:2] if type(t) == type(''): @@ -659,7 +665,7 @@ class Pdb(bdb.Bdb, cmd.Cmd): sys.settrace(None) globals = self.curframe.f_globals locals = self.curframe.f_locals - p = Pdb() + p = Pdb(self.completekey, self.stdin, self.stdout) p.prompt = "(%s) " % self.prompt.strip() print >>self.stdout, "ENTERING RECURSIVE DEBUGGER" sys.call_tracing(p.run, (arg, globals, locals)) diff --git a/Misc/NEWS b/Misc/NEWS index 32dab1059c..0be1934f86 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -358,11 +358,15 @@ Core and builtins - Bug #1664966: Fix crash in exec if Unicode filename can't be decoded. -- Issue #1537: Changed GeneratorExit's base class from Exception to BaseException. +- Issue #1537: Changed GeneratorExit's base class from Exception to + BaseException. Library ------- +- Issue #1786: pdb should use its own stdin/stdout around an exec call + and when creating a recursive instance. + - Issue #1698398 Zipfile.printdir() crashed because the format string expected a tuple type of length six instead of time.struct_time object.