<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

].                 @   s#  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)!    N)Debuggeridb_adapterZgui_adapterc             C   s   t  |   } |  t | <| S)N)id
frametable)framefid r   3/opt/alt/python35/lib64/python3.5/RemoteDebugger.py
wrap_frame(   s    
r
   c             C   sO   |  d  k r d  S|  d } t  |  } | t | <|  d |  d | f } | Sd  S)N   r      )r   tracebacktable)info	tracebackZtraceback_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    	zGUIProxy.__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    zGUIProxy.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"   Z d# d$   Z d% d&   Z d' d(   Z d) S)*
IdbAdapterc             C   s   | |  _  d  S)N)idb)r   r   r   r   r	   r   H   s    zIdbAdapter.__init__c             C   s   |  j  j   d  S)N)r   set_step)r   r   r   r	   r    M   s    zIdbAdapter.set_stepc             C   s   |  j  j   d  S)N)r   set_quit)r   r   r   r	   r!   P   s    zIdbAdapter.set_quitc             C   s   |  j  j   d  S)N)r   set_continue)r   r   r   r	   r"   S   s    zIdbAdapter.set_continuec             C   s   t  | } |  j j |  d  S)N)r   r   set_next)r   r   r   r   r   r	   r#   V   s    
zIdbAdapter.set_nextc             C   s   t  | } |  j j |  d  S)N)r   r   
set_return)r   r   r   r   r   r	   r$   Z   s    
zIdbAdapter.set_returnc             C   sa   t  | } | d  k r d  } n
 t | } |  j j | |  \ } } d d   | D } | | f S)Nc             S   s(   g  |  ] \ } } t  |  | f  q Sr   )r
   ).0Zframe2kr   r   r	   
<listcomp>e   s   	 z(IdbAdapter.get_stack.<locals>.<listcomp>)r   r   r   	get_stack)r   r   tbidr   tbstackir   r   r	   r(   ^   s    
	
zIdbAdapter.get_stackc             C   s&   d d  l  } |  j j | | j  d  S)Nr   )__main__r   run__dict__)r   cmdr-   r   r   r	   r.   h   s    zIdbAdapter.runc             C   s   |  j  j | |  } | S)N)r   	set_break)r   filenamelinenomsgr   r   r	   r1   l   s    zIdbAdapter.set_breakc             C   s   |  j  j | |  } | S)N)r   clear_break)r   r2   r3   r4   r   r   r	   r5   p   s    zIdbAdapter.clear_breakc             C   s   |  j  j |  } | S)N)r   clear_all_file_breaks)r   r2   r4   r   r   r	   r6   t   s    z IdbAdapter.clear_all_file_breaksc             C   s   t  | } t | |  S)N)r   getattr)r   r   namer   r   r   r	   
frame_attrz   s    
zIdbAdapter.frame_attrc             C   s-   t  | } | j } t |  } | t | <| S)N)r   	f_globalsr   	dicttable)r   r   r   dictdidr   r   r	   frame_globals~   s
    
	
zIdbAdapter.frame_globalsc             C   s-   t  | } | j } t |  } | t | <| S)N)r   f_localsr   r;   )r   r   r   r<   r=   r   r   r	   frame_locals   s
    
	
zIdbAdapter.frame_localsc             C   s-   t  | } | j } t |  } | t | <| S)N)r   f_coder   	codetable)r   r   r   codecidr   r   r	   
frame_code   s
    
	
zIdbAdapter.frame_codec             C   s   t  | } | j S)N)rB   co_name)r   rD   rC   r   r   r	   	code_name   s    
zIdbAdapter.code_namec             C   s   t  | } | j S)N)rB   co_filename)r   rD   rC   r   r   r	   code_filename   s    
zIdbAdapter.code_filenamec             C   s   t  d   d  S)Nz"dict_keys not public or pickleable)NotImplemented)r   r=   r   r   r	   	dict_keys   s    zIdbAdapter.dict_keysc             C   s   t  | } t | j    S)N)r;   listkeys)r   r=   r<   r   r   r	   dict_keys_list   s    
zIdbAdapter.dict_keys_listc             C   s$   t  | } | | } t |  } | S)N)r;   repr)r   r=   keyr<   valuer   r   r	   	dict_item   s    

zIdbAdapter.dict_itemN)r   r   r   r   r    r!   r"   r#   r$   r(   r.   r1   r5   r6   r9   r>   r@   rE   rG   rI   rK   rN   rR   r   r   r   r	   r   F   s(   
	r   c             C   s>   t  |  |  } t j |  } t |  } |  j t |  t S)N)r   r   ZIdbr   registeridb_adap_oid)Z
rpchandlerr   Z	gui_proxyr   Zidb_adapr   r   r	   start_debugger   s
    
rU   c               @   sX   e  Z d  Z d d   Z d d   Z d d   Z d d   Z d	 d
   Z d d   Z d S)
FrameProxyc             C   s(   | |  _  | |  _ d |  _ i  |  _ d  S)Nr   )_conn_fid_oid
_dictcache)r   r   r   r   r   r	   r      s    			zFrameProxy.__init__c             C   s   | d  d  d k r" t  |   | d k r8 |  j   S| d k rN |  j   S| d k rd |  j   S|  j j |  j d |  j | f i   S)Nr   _rA   r:   r?   r9   )AttributeError_get_f_code_get_f_globals_get_f_localsrW   r   rY   rX   )r   r8   r   r   r	   __getattr__   s    


zFrameProxy.__getattr__c             C   s:   |  j  j |  j d |  j f i   } t |  j  |  j |  S)NrE   )rW   r   rY   rX   	CodeProxy)r   rD   r   r   r	   r]      s    $zFrameProxy._get_f_codec             C   s1   |  j  j |  j d |  j f i   } |  j |  S)Nr>   )rW   r   rY   rX   _get_dict_proxy)r   r=   r   r   r	   r^      s    zFrameProxy._get_f_globalsc             C   s1   |  j  j |  j d |  j f i   } |  j |  S)Nr@   )rW   r   rY   rX   rb   )r   r=   r   r   r	   r_      s    zFrameProxy._get_f_localsc             C   sC   | |  j  k r |  j  | St |  j |  j |  } | |  j  | <| S)N)rZ   	DictProxyrW   rY   )r   r=   Zdpr   r   r	   rb      s
    zFrameProxy._get_dict_proxyN)	r   r   r   r   r`   r]   r^   r_   rb   r   r   r   r	   rV      s   rV   c               @   s(   e  Z d  Z d d   Z d d   Z d S)ra   c             C   s   | |  _  | |  _ | |  _ d  S)N)rW   rY   _cid)r   r   r   rD   r   r   r	   r      s    		zCodeProxy.__init__c             C   s`   | d k r. |  j  j |  j d |  j f i   S| d k r\ |  j  j |  j d |  j f i   Sd  S)NrF   rG   rH   rI   )rW   r   rY   rd   )r   r8   r   r   r	   r`      s    zCodeProxy.__getattr__N)r   r   r   r   r`   r   r   r   r	   ra      s   ra   c               @   s@   e  Z d  Z d d   Z d d   Z d d   Z d d   Z d	 S)
rc   c             C   s   | |  _  | |  _ | |  _ d  S)N)rW   rY   _did)r   r   r   r=   r   r   r	   r     s    		zDictProxy.__init__c             C   s"   |  j  j |  j d |  j f i   S)NrN   )rW   r   rY   re   )r   r   r   r	   rM     s    zDictProxy.keysc             C   s%   |  j  j |  j d |  j | f i   S)NrR   )rW   r   rY   re   )r   rP   r   r   r	   __getitem__  s    zDictProxy.__getitem__c             C   s   t  |   d  S)N)r\   )r   r8   r   r   r	   r`     s    zDictProxy.__getattr__N)r   r   r   r   rM   rf   r`   r   r   r   r	   rc     s   	rc   c               @   s(   e  Z d  Z d d   Z d d   Z d S)
GUIAdapterc             C   s   | |  _  | |  _ d  S)N)r   gui)r   r   rh   r   r   r	   r     s    	zGUIAdapter.__init__c             C   s,   t  |  j |  } |  j j | | |  d  S)N)rV   r   rh   r   )r   r   r   r   r   r   r   r	   r   !  s    zGUIAdapter.interactionN)r   r   r   r   r   r   r   r   r	   rg     s   rg   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 S)IdbProxyc             C   s   | |  _  | |  _ | |  _ d  S)N)r   r   shell)r   r   rj   r   r   r   r	   r   )  s    		zIdbProxy.__init__c             O   s"   |  j  j |  j | | |  } | S)N)r   r   r   )r   Z
methodnameargskwargsrQ   r   r   r	   call.  s    zIdbProxy.callc             C   s4   |  j  j |  j d | f i   } | |  j j _ d  S)Nr.   )r   Z
asyncqueuer   rj   ZinterpZ
active_seq)r   r0   localsseqr   r   r	   r.   4  s    !zIdbProxy.runc                sA     j  d | j |  \ } }   f d d   | D } | | f S)Nr(   c                s.   g  |  ]$ \ } } t    j |  | f  q Sr   )rV   r   )r%   r   r&   )r   r   r	   r'   <  s   	 z&IdbProxy.get_stack.<locals>.<listcomp>)rm   rX   )r   r   r)   r+   r,   r   )r   r	   r(   9  s    zIdbProxy.get_stackc             C   s   |  j  d  d  S)Nr"   )rm   )r   r   r   r	   r"   ?  s    zIdbProxy.set_continuec             C   s   |  j  d  d  S)Nr    )rm   )r   r   r   r	   r    B  s    zIdbProxy.set_stepc             C   s   |  j  d | j  d  S)Nr#   )rm   rX   )r   r   r   r   r	   r#   E  s    zIdbProxy.set_nextc             C   s   |  j  d | j  d  S)Nr$   )rm   rX   )r   r   r   r   r	   r$   H  s    zIdbProxy.set_returnc             C   s   |  j  d  d  S)Nr!   )rm   )r   r   r   r	   r!   K  s    zIdbProxy.set_quitc             C   s   |  j  d | |  } | S)Nr1   )rm   )r   r2   r3   r4   r   r   r	   r1   N  s    zIdbProxy.set_breakc             C   s   |  j  d | |  } | S)Nr5   )rm   )r   r2   r3   r4   r   r   r	   r5   R  s    zIdbProxy.clear_breakc             C   s   |  j  d |  } | S)Nr6   )rm   )r   r2   r4   r   r   r	   r6   V  s    zIdbProxy.clear_all_file_breaksN)r   r   r   r   rm   r.   r(   r"   r    r#   r$   r!   r1   r5   r6   r   r   r   r	   ri   '  s   ri   c             C   sb   |  j  d d t f i   a t |  | t  } t j | |  } t |  |  } |  j t |  | S)Nexecstart_the_debugger)r   r   rT   ri   r   rg   rS   )rpccltZpyshellZ	idb_proxyrh   Zgui_adapr   r   r	   start_remote_debuggerZ  s    rs   c             C   s   t  |   |  j t  d  S)N)close_subprocess_debugger
unregisterr   )rr   r   r   r	   close_remote_debuggerr  s    	
rv   c             C   s   |  j  d d t f i   d  S)Nrp   Zstop_the_debugger)r   rT   )rr   r   r   r	   rt   ~  s    rt   c             C   s   |  j  d d t f i   } d  S)Nrp   rq   )r   r   )rr   Zidb_adap_oid_retr   r   r	   restart_subprocess_debugger  s    rw   )typesZidlelibr   Z	debuggingrT   r   r   r;   rB   r   r
   r   r   r   rU   rV   ra   rc   rg   ri   rs   rv   rt   rw   r   r   r   r	   <module>   s,   m*3