Experimental version writes the command to a file.

This commit is contained in:
Guido van Rossum 1992-01-24 01:12:00 +00:00
parent babe2bf8f4
commit 177dd80799
1 changed files with 15 additions and 3 deletions

View File

@ -6,6 +6,7 @@
# and 'wdb', a window-oriented debugger.
# And of course... you can roll your own!
import sys
BdbQuit = 'bdb.BdbQuit' # Exception to give up completely
@ -220,9 +221,8 @@ class Bdb: # Basic Debugger
# a debugger to debug a statement, given as a string.
def run(self, cmd):
import __main__
dict = __main__.__dict__
self.runctx(cmd, dict, dict)
modname = self.writetempfile(cmd)
self.runctx('import ' + modname + '\n', {}, {})
def runctx(self, cmd, globals, locals):
self.reset()
@ -237,6 +237,18 @@ class Bdb: # Basic Debugger
del sys.trace
# XXX What to do if the command finishes normally?
def writetempfile(self, cmd):
import os
modname = 'bdb' + `os.getpid()`
filename = '/tmp/' + modname + '.py'
f = open(filename, 'w')
f.write(cmd + '\n')
f.close()
import sys
if sys.modules.has_key(modname): del sys.modules[modname]
if '/tmp' not in sys.path: sys.path.insert(0, '/tmp')
return modname
# -------------------- testing --------------------