示例#1
0
 def open_stack_viewer(self, event=None):
     try:
         sys.last_traceback
     except:
         tkMessageBox.showerror("No stack trace",
                                "There is no stack trace yet.\n"
                                "(sys.last_traceback is not defined)",
                                master=self.text)
         return
     from StackViewer import StackBrowser
     sv = StackBrowser(self.root, self.flist)
示例#2
0
 def run_module_event(self, event, debugger=None):
     if not self.editwin.get_saved():
         tkMessageBox.showerror("Not saved",
                                "Please save first!",
                                master=self.editwin.text)
         self.editwin.text.focus_set()
         return
     filename = self.editwin.io.filename
     if not filename:
         tkMessageBox.showerror("No file name",
                                "This window has no file name",
                                master=self.editwin.text)
         self.editwin.text.focus_set()
         return
     modname, ext = os.path.splitext(os.path.basename(filename))
     if sys.modules.has_key(modname):
         mod = sys.modules[modname]
     else:
         mod = imp.new_module(modname)
         sys.modules[modname] = mod
     mod.__file__ = filename
     saveout = sys.stdout
     saveerr = sys.stderr
     owin = OnDemandOutputWindow(self.editwin.flist)
     try:
         sys.stderr = PseudoFile(owin, "stderr")
         try:
             sys.stdout = PseudoFile(owin, "stdout")
             try:
                 if debugger:
                     debugger.run("execfile(%s)" % ` filename `,
                                  mod.__dict__)
                 else:
                     execfile(filename, mod.__dict__)
             except:
                 (sys.last_type, sys.last_value,
                  sys.last_traceback) = sys.exc_info()
                 linecache.checkcache()
                 traceback.print_exc()
                 if not debugger and \
                    self.editwin.getvar("<<toggle-jit-stack-viewer>>"):
                     from StackViewer import StackBrowser
                     sv = StackBrowser(self.root, self.flist)
         finally:
             sys.stdout = saveout
     finally:
         sys.stderr = saveerr