#1472251: remove addition of "\n" to code given to pdb.run[eval](), the bug in exec() that made this necessary has been fixed. Also document that you can give code objects to run() and runeval(), and add some tests to test_pdb.

This commit is contained in:
Georg Brandl 2010-07-30 09:14:20 +00:00
parent 44f8bf9411
commit 46b9afc862
3 changed files with 59 additions and 19 deletions

View file

@ -364,8 +364,9 @@ class Bdb:
if line: s = s + lprefix + line.strip()
return s
# The following two methods can be called by clients to use
# a debugger to debug a statement, given as a string.
# The following methods can be called by clients to use
# a debugger to debug a statement or an expression.
# Both can be given as a string, or a code object.
def run(self, cmd, globals=None, locals=None):
if globals is None:
@ -375,8 +376,6 @@ class Bdb:
locals = globals
self.reset()
sys.settrace(self.trace_dispatch)
if not isinstance(cmd, types.CodeType):
cmd = cmd+'\n'
try:
exec(cmd, globals, locals)
except BdbQuit:
@ -393,8 +392,6 @@ class Bdb:
locals = globals
self.reset()
sys.settrace(self.trace_dispatch)
if not isinstance(expr, types.CodeType):
expr = expr+'\n'
try:
return eval(expr, globals, locals)
except BdbQuit: