Commit b4680f02 authored by Guido van Rossum's avatar Guido van Rossum

Issue #1786 (by myself): pdb should use its own stdin/stdout around an

exec call and when creating a recursive instance.
parent 70ed3705
......@@ -199,7 +199,13 @@ class Pdb(bdb.Bdb, cmd.Cmd):
globals = self.curframe.f_globals
try:
code = compile(line + '\n', '<stdin>', '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))
......
......@@ -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.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment