Sindbad~EG File Manager
�
%ΜgS/��"� ddlZddlZddlmZdZdadZiZiZiZ iZ
d�Zd�ZGd�d�Z
Gd �d
�Zd�ZGd�d
�ZGd�d�ZGd�d�ZGd�d�ZGd�d�Zd�Zd�Zd�Zd�Zedk(rddlmZeddd��yy) �N)�debugger�idb_adapter�gui_adapterc�.�t|�}|t|<|S�N)�id�
frametable)�frame�fids �//usr/local/lib/python3.12/idlelib/debugger_r.py�
wrap_framer
(s��
�U�)�C��J�s�O��J�c�V� |�y|d}t|�}|t|<|d|d|f}|S)N�r�)r�tracebacktable)�info� traceback�traceback_id�
modified_infos r� wrap_infor-sC��6��|����G� ��)�}��'0��|�$��a��$�q�'�<�8�
��rc��eZdZd�Zdd�Zy)�GUIProxyc� �||_||_yr)�conn�oid)�selfr�gui_adap_oids r�__init__zGUIProxy.__init__;s���� ���rNc �~�|jj|jd|t|�t |�fi�y)N�interaction)r�
remotecallrr
r)r�messager
rs rr!zGUIProxy.interaction?s4��
� � ���T�X�X�}�%�z�%�'8�)�D�/�J�� !rr��__name__�
__module__�__qualname__rr!�rrrr9s�� �!rrc��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z
d �Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zy)�
IdbAdapterc��||_yr)�idb)rr,s rrzIdbAdapter.__init__Hs ����rc�8�|jj�yr)r,�set_step�rs rr.zIdbAdapter.set_stepM��������rc�8�|jj�yr)r,�set_quitr/s rr2zIdbAdapter.set_quitPr0rc�8�|jj�yr)r,�set_continuer/s rr4zIdbAdapter.set_continueSs�������rc�L�t|}|jj|�yr)r r,�set_next�rrr
s rr6zIdbAdapter.set_nextVs���3��������%� rc�L�t|}|jj|�yr)r r,�
set_returnr7s rr9zIdbAdapter.set_returnZs���3��������E�"rc��t|}|�d}n t|}|jj||�\}}|D��cgc]\}}t |�|f��}}}||fScc}}wr)r rr,� get_stackr
) rr�tbidr
�tb�stack�i�frame2�ks rr;zIdbAdapter.get_stack^sj���3����<��B���%�B��8�8�%�%�e�R�0���q�:?�@�%�Y�V�Q�*�V�$�a�(�%��@��a�x���As�Ac�X�ddl}|jj||j�y)Nr)�__main__r,�run�__dict__)r�cmdrCs rrDzIdbAdapter.runhs��������S�(�+�+�,rc�>�|jj||�}|Sr)r,� set_break�r�filename�lineno�msgs rrHzIdbAdapter.set_breakls���h�h� � ��6�2���
rc�>�|jj||�}|Sr)r,�clear_breakrIs rrNzIdbAdapter.clear_breakps���h�h�"�"�8�V�4���
rc�<�|jj|�}|Sr)r,�clear_all_file_breaks�rrJrLs rrPz IdbAdapter.clear_all_file_breaksts���h�h�,�,�X�6���
rc�,�t|}t||�Sr)r �getattr)rr�namer
s r�
frame_attrzIdbAdapter.frame_attrzs���3����u�d�#�#rc�X�t|}|j}t|�}|t|<|Sr)r � f_globalsr� dicttable)rrr
�gdict�dids r�
frame_globalszIdbAdapter.frame_globals~s+���3���������i��� �#���
rc�X�t|}|j}t|�}|t|<|Sr)r �f_localsrrX)rrr
�ldictrZs r�frame_localszIdbAdapter.frame_locals�s+���3���������i��� �#���
rc�X�t|}|j}t|�}|t|<|Sr)r �f_coder� codetable)rrr
�code�cids r�
frame_codezIdbAdapter.frame_code�s+���3����|�|����h��� �#���
rc�,�t|}|jSr)rb�co_name�rrdrcs r� code_namezIdbAdapter.code_name�s����~���|�|�rc�,�t|}|jSr)rb�co_filenamerhs r�
code_filenamezIdbAdapter.code_filename�s����~�����rc��td��)Nz"dict_keys not public or pickleable)�NotImplementedError�rrZs r� dict_keyszIdbAdapter.dict_keys�s��!�"F�G�Grc�B�tt|j��Sr)�listrX�keysros r�dict_keys_listzIdbAdapter.dict_keys_list�s���I�c�N�'�'�)�*�*rc�D�t||}tj|�Sr)rX�reprlib�repr)rrZ�key�values r� dict_itemzIdbAdapter.dict_item�s���#��s�#���|�|�E�"�"rN)r%r&r'rr.r2r4r6r9r;rDrHrNrPrUr[r_rerirlrprtrzr(rrr*r*Fsg���
�� �!�#��-����$����� �H�+�#rr*c�� t||�}tj|�}t|�}|j t
|�t
Sr)rr�Idbr*�register�idb_adap_oid)�
rpchandlerr� gui_proxyr,�idb_adaps r�start_debuggerr��sB�����\�2�I�
�,�,�y�
!�C��#��H�����h�/��rc�0�eZdZd�Zd�Zd�Zd�Zd�Zd�Zy)�
FrameProxyc�<�||_||_d|_i|_y)Nr)�_conn�_fid�_oid�
_dictcache)rrrs rrzFrameProxy.__init__�s����
��� �!�� ���rc��|dddk(rt|��|dk(r|j�S|dk(r|j�S|dk(r|j�S|jj|jd|j|fi�S)Nr�_rarWr]rU)�AttributeError�_get_f_code�_get_f_globals�
_get_f_localsr�r"r�r��rrTs r�__getattr__zFrameProxy.__getattr__�s������8�s�?� ��&�&��8���#�#�%�%��;���&�&�(�(��:���%�%�'�'��z�z�$�$�T�Y�Y��&*�i�i��%6��<� <rc��|jj|jd|jfi�}t |j|j|�S)Nre)r�r"r�r�� CodeProxy)rrds rr�zFrameProxy._get_f_code�s=���j�j�#�#�D�I�I�|�d�i�i�\�2�N������T�Y�Y��4�4rc��|jj|jd|jfi�}|j |�S)Nr[�r�r"r�r��_get_dict_proxyros rr�zFrameProxy._get_f_globals�s:���j�j�#�#�D�I�I��%)�Y�Y�L�"�6���#�#�C�(�(rc��|jj|jd|jfi�}|j |�S)Nr_r�ros rr�zFrameProxy._get_f_locals�s:���j�j�#�#�D�I�I�~�%)�Y�Y�L�"�6���#�#�C�(�(rc��||jvr|j|St|j|j|�}||j|<|Sr)r�� DictProxyr�r�)rrZ�dps rr�zFrameProxy._get_dict_proxy�sF���$�/�/�!��?�?�3�'�'�
�t�z�z�4�9�9�c�
2��!������� rN) r%r&r'rr�r�r�r�r�r(rrr�r��s ���
<�5�)�
)�
rr�c��eZdZd�Zd�Zy)r�c�.�||_||_||_yr)r�r��_cid)rrrrds rrzCodeProxy.__init__������
��� ��� rc���|dk(r3|jj|jd|jfi�S|dk(r3|jj|jd|jfi�Sy)Nrgrirkrl)r�r"r�r�r�s rr�zCodeProxy.__getattr__�sk���9���:�:�(�(����K�*.�)�)��r�;�
;��=� ��:�:�(�(����O�*.�)�)��r�;�
;�!rN)r%r&r'rr�r(rrr�r��s���
;rr�c�$�eZdZd�Zd�Zd�Zd�Zy)r�c�.�||_||_||_yr)r�r��_did)rrrrZs rrzDictProxy.__init__r�rc�h�|jj|jd|jfi�S)Nrt�r�r"r�r�r/s rrszDictProxy.keyss.���z�z�$�$�T�Y�Y�%5�� � �|�R�I� Irc�j�|jj|jd|j|fi�S)Nrzr�)rrxs r�__getitem__zDictProxy.__getitem__s/���z�z�$�$�T�Y�Y��&*�i�i��%5�r�;� ;rc��t|��r)r�r�s rr�zDictProxy.__getattr__s
���T�"�"rN)r%r&r'rrsr�r�r(rrr�r�s���I�;�#rr�c��eZdZd�Zd�Zy)�
GUIAdapterc� �||_||_yr)r�gui)rrr�s rrzGUIAdapter.__init__s���� ���rc�j�t|j|�}|jj|||�yr)r�rr�r!)rr#rrr
s rr!zGUIAdapter.interactions(���4�9�9�c�*�������W�e�]�;rNr$r(rrr�r�s���<rr�c�T�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z
d �Zd
�Zd�Z
d�Zy
)�IdbProxyc�.�||_||_||_yr)rr�shell)rrr�rs rrzIdbProxy.__init__&s������� ���
rc�V�|jj|j|||�}|Sr)rr"r)r�
methodname�args�kwargsrys r�callz
IdbProxy.call+s%��� � �$�$�T�X�X�z�4��H���rc��|jj|jd|fi�}||jj_y)NrD)r�
asyncqueuerr��interp�
active_seq)rrF�locals�seqs rrDzIdbProxy.run1s4���i�i�"�"�4�8�8�U�S�F�B�?��'*��
�
���$rc��|jd|j|�\}}|D��cgc]\}}t|j|�|f��}}}||fScc}}w)Nr;)r�r�r�r)rr
r<r>r?rrAs rr;zIdbProxy.get_stack6sS���9�9�[�%�*�*�d�;���q�?D�E�u�V�S�!�*�T�Y�Y��,�a�0�u��E��a�x���Fs�"Ac�&�|jd�y)Nr4�r�r/s rr4zIdbProxy.set_continue<s��� � �.�!rc�&�|jd�y)Nr.r�r/s rr.zIdbProxy.set_step?���� � �*�rc�<�|jd|j�y)Nr6�r�r��rr
s rr6zIdbProxy.set_nextBs��� � �*�e�j�j�)rc�<�|jd|j�y)Nr9r�r�s rr9zIdbProxy.set_returnEs��� � �,��
�
�+rc�&�|jd�y)Nr2r�r/s rr2zIdbProxy.set_quitHr�rc�,�|jd||�}|S)NrHr�rIs rrHzIdbProxy.set_breakKs���i�i��X�v�6���
rc�,�|jd||�}|S)NrNr�rIs rrNzIdbProxy.clear_breakOs���i�i�
�x��8���
rc�*�|jd|�}|S)NrPr�rQs rrPzIdbProxy.clear_all_file_breaksSs���i�i�/��:���
rN)r%r&r'rr�rDr;r4r.r6r9r2rHrNrPr(rrr�r�$s>���
�+�
�"��*�,����rr�c��� |jddtfi�at||t�}t j
||�}t
||�}|jt|�|S�N�exec�start_the_debugger)r"rr~r�r�Debuggerr�r})�rpcclt�pyshell� idb_proxyr��gui_adaps r�start_remote_debuggerr�Wsd����$�$�V�-A�$0�?�B�8�L����,�7�I�
�
�
�G�Y�
/�C��&�#�&�H�
�O�O�L�(�+��Jrc�F� t|�|jt�yr)�close_subprocess_debugger�
unregisterr�r�s r�close_remote_debuggerr�os����f�%�
���l�#rc�6�|jddtfi�y)Nr��stop_the_debugger)r"r~r�s rr�r�{s��
���f�1�L�?�B�Grc�6�|jddtfi�}yr�)r"r)r��idb_adap_oid_rets r�restart_subprocess_debuggerr�~s���(�(��1E�*6��"�>�rrC)�mainz!idlelib.idle_test.test_debugger_rrF)� verbosity�exit)rv�types�idlelibr� debuggingr~rr rXrbrr
rrr*r�r�r�r�r�r�r�r�r�r�r%�unittestr�r(rr�<module>r�s����*���
� ������
�� �� ����
�!�!�e#�e#�T�,'�'�T
;�
;� #�#�0 <� <�1�1�f�0
$�H�P��z���� ,���F�r
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists