[pypy-svn] r18057 - in pypy/dist/pypy/translator: goal tool
pedronis at codespeak.net
pedronis at codespeak.net
Sat Oct 1 16:13:27 CEST 2005
Author: pedronis
Date: Sat Oct 1 16:13:25 2005
New Revision: 18057
Modified:
pypy/dist/pypy/translator/goal/translate_pypy.py
pypy/dist/pypy/translator/tool/pdbplus.py
Log:
command graphserve <port> to start serving graph at a later time
Modified: pypy/dist/pypy/translator/goal/translate_pypy.py
==============================================================================
--- pypy/dist/pypy/translator/goal/translate_pypy.py (original)
+++ pypy/dist/pypy/translator/goal/translate_pypy.py Sat Oct 1 16:13:25 2005
@@ -212,15 +212,23 @@
t = translator.Translator()
- if options.graphserve:
- from pypy.translator.tool.graphserver import run_async_server
- serv_start, serv_show, serv_stop = run_async_server(t, options)
- def server_setup():
- return serv_start, serv_show, serv_stop
- else:
- def server_setup():
- from pypy.translator.tool.graphserver import run_server_for_inprocess_client
- return run_server_for_inprocess_client(t, options)
+ class ServerSetup:
+ async_server = None
+
+ def __call__(self, port=None):
+ if self.async_server is not None:
+ return async_server
+ elif options.graphserve or port is not None:
+ if options.graphserve is None:
+ options.graphserve = port
+ from pypy.translator.tool.graphserver import run_async_server
+ serv_start, serv_show, serv_stop = self.async_server = run_async_server(t, options)
+ return serv_start, serv_show, serv_stop
+ else:
+ from pypy.translator.tool.graphserver import run_server_for_inprocess_client
+ return run_server_for_inprocess_client(t, options)
+
+ server_setup = ServerSetup()
pdb_plus_show = PdbPlusShow(t) # need a translator to support extended commands
Modified: pypy/dist/pypy/translator/tool/pdbplus.py
==============================================================================
--- pypy/dist/pypy/translator/tool/pdbplus.py (original)
+++ pypy/dist/pypy/translator/tool/pdbplus.py Sat Oct 1 16:13:25 2005
@@ -1,7 +1,8 @@
import threading, pdb
class _EnableGraphic:
- pass
+ def __init__(self, port=None):
+ self.port = port
class PdbPlusShow(pdb.Pdb):
@@ -343,9 +344,19 @@
"""enable_graphic
enable pygame graph display even from non-graphic mode"""
if self.show:
+ print "*** display already there"
return
raise _EnableGraphic
+ def do_graphserve(self, arg):
+ """graphserve <port>
+start serving graphs on <port>
+"""
+ if self.show:
+ print "*** display already there"
+ return
+ raise _EnableGraphic(int(arg))
+
def help_graphs(self):
print "graph commands are: showg, flowg, callg, classhier, enable_graphic"
@@ -381,14 +392,15 @@
return threading.Thread(target=_run_in_thread, args=())
def start(self, tb, server_setup, graphic=False):
+ port = None
if not graphic:
try:
self._run_debugger(tb)
- except _EnableGraphic:
- pass
+ except _EnableGraphic, engraph:
+ port = engraph.port
else:
return
- start, show, stop = server_setup()
+ start, show, stop = server_setup(port)
self.install_show(show)
debugger = self._run_debugger_in_thread(tb, stop)
debugger.start()
More information about the Pypy-commit
mailing list