Your IP : 3.141.192.174
�
e f�. � @ s) d Z d d l Z d d l m Z d Z d a d Z i Z i Z i Z i Z
d d � Z d d � Z Gd
d � d � Z
Gd d
� d
� Z d d � Z Gd d � d � Z Gd d � d � Z Gd d � d � Z Gd d � d � Z Gd d � d � Z d d � Z d d � Z d d � Z d d! � Z d S)"a� 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.
� N)�Debugger�idb_adapterZgui_adapterc C s t | � } | t | <| S)N)�id�
frametable)�frame�fid� r �;/opt/alt/python34/lib64/python3.4/idlelib/RemoteDebugger.py�
wrap_frame( s
r
c C sg | d k r d S| d } t | t j � s2 t � t | � } | t | <| d | d | f } | Sd S)z0replace info[2], a traceback instance, by its IDN� r � )�
isinstance�types�
TracebackType�AssertionErrorr �tracebacktable)�info� tracebackZtraceback_id�
modified_infor r r � wrap_info- s
r c @ s+ e Z d Z d d � Z d d d � Z d S)�GUIProxyc C s | | _ | | _ d S)N)�conn�oid)�selfr �gui_adap_oidr r r �__init__; s zGUIProxy.__init__Nc C s5 | j j | j d | t | � t | � f i � d S)N�interaction)r �
remotecallr r
r )r �messager r r r r r ? s zGUIProxy.interaction)�__name__�
__module__�__qualname__r r r r r r r 9 s r c @ s e Z d Z d d � Z d d � Z d d � Z d d � Z d d
� Z d d � Z d
d � Z d d � Z
d d � Z d d � Z d d � Z
d d � Z d d � Z d d � Z d d � Z d d � Z d! d"