From 177dd80799cf16b7cee634f82fa12d86b2873f6d Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Fri, 24 Jan 1992 01:12:00 +0000 Subject: Experimental version writes the command to a file. --- Lib/bdb.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/Lib/bdb.py b/Lib/bdb.py index 36b0f18..693387b 100644 --- a/Lib/bdb.py +++ b/Lib/bdb.py @@ -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 -------------------- -- cgit v0.12