Ñò §ÚêLc @ s$ d Z d d k Z d d k l Z d d k l Z d Z d a d Z h Z h Z h Z h Z d „ Z d „ Z d d d „ ƒ YZ d d d „ ƒ YZ d „ Z d d d „ ƒ YZ d d d „ ƒ YZ d d! d „ ƒ YZ d d" d „ ƒ YZ d d# d „ ƒ YZ d „ Z d „ Z d „ Z d „ Z d S($ sÎ Support for remote Python debugging. Some ASCII art to describe the structure: IN PYTHON SUBPROCESS # IN IDLE PROCESS # # oid='gui_adapter' +----------+ # +------------+ +-----+ | GUIProxy |--remote#call-->| GUIAdapter |--calls-->| GUI | +-----+--calls-->+----------+ # +------------+ +-----+ | Idb | # / +-----+<-calls--+------------+ # +----------+<--calls-/ | IdbAdapter |<--remote#call--| IdbProxy | +------------+ # +----------+ oid='idb_adapter' # The purpose of the Proxy and Adapter classes is to translate certain arguments and return values that cannot be transported through the RPC barrier, in particular frame and traceback objects. iÿÿÿÿN( t rpc( t Debuggeri t idb_adaptert gui_adapterc C s t | ƒ } | t | <| S( N( t idt frametable( t framet fid( ( s. /usr/lib64/python2.6/idlelib/RemoteDebugger.pyt wrap_frame) s c C sQ | d j o d S| d } t | ƒ } | t | <| d | d | f } | Sd S( s0 replace info[2], a traceback instance, by its IDi i i N( t NoneR t tracebacktable( t infot tracebackt traceback_idt modified_info( ( s. /usr/lib64/python2.6/idlelib/RemoteDebugger.pyt wrap_info. s t GUIProxyc B s e Z d „ Z d d „ Z RS( c C s | | _ | | _ d S( N( t connt oid( t selfR t gui_adap_oid( ( s. /usr/lib64/python2.6/idlelib/RemoteDebugger.pyt __init__<