mirror of
https://github.com/python/cpython.git
synced 2025-10-10 00:43:41 +00:00
Modify the remote stack viewer to work in the threaded subprocess.
M PyShell.py M run.py
This commit is contained in:
parent
5da131b2df
commit
9f36609720
2 changed files with 26 additions and 3 deletions
|
@ -357,6 +357,7 @@ class ModifiedInterpreter(InteractiveInterpreter):
|
|||
self.rpcclt.register("stderr", self.tkconsole.stderr)
|
||||
self.rpcclt.register("flist", self.tkconsole.flist)
|
||||
self.rpcclt.register("linecache", linecache)
|
||||
self.rpcclt.register("interp", self)
|
||||
self.transfer_path()
|
||||
self.poll_subprocess()
|
||||
|
||||
|
@ -480,6 +481,19 @@ class ModifiedInterpreter(InteractiveInterpreter):
|
|||
def getdebugger(self):
|
||||
return self.debugger
|
||||
|
||||
def open_remote_stack_viewer(self):
|
||||
"""Initiate the remote stack viewer from a separate thread.
|
||||
|
||||
This method is called from the subprocess, and by returning from this
|
||||
method we allow the subprocess to unblock. After a bit the shell
|
||||
requests the subprocess to open the remote stack viewer which returns a
|
||||
static object looking at the last exceptiopn. It is queried through
|
||||
the RPC mechanism.
|
||||
|
||||
"""
|
||||
self.tkconsole.text.after(300, self.remote_stack_viewer)
|
||||
return
|
||||
|
||||
def remote_stack_viewer(self):
|
||||
import RemoteObjectBrowser
|
||||
oid = self.rpcclt.remotequeue("exec", "stackviewer", ("flist",), {})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue