Current File : //usr/local/apps/python3/lib/python3.11/idlelib/__pycache__/debugger.cpython-311.pyc
�

�Ke�J���ddlZddlZddlTddlmZmZddlmZddlm	Z	ddl
mZGd�dej��Z
Gd	�d
��ZGd�de	��ZGd
�d��ZedkrddlmZeddd���dSdS)�N)�*)�Frame�	Scrollbar)�macosx)�ScrolledList)�ListedToplevelc�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�Idbc�R�||_tj�|��dS�N)�gui�bdb�Bdb�__init__)�selfr
s  �:/usr/local/apps/python3/lib/python3.11/idlelib/debugger.pyrzIdb.__init__s%���������������c���|�|��r|���dS|�|��}	|j�||��dS#t
$rYdSwxYwr)�in_rpc_code�set_step�_Idb__frame2messager
�interaction�TclError)r�frame�messages   r�	user_linez
Idb.user_lines������E�"�"�	��M�M�O�O�O��F��&�&�u�-�-��	��H� � ��%�0�0�0�0�0���	�	�	��D�D�	���s�A�
A-�,A-c��|�|��r|���dS|�|��}|j�|||��dSr)rrrr
r)rr�infors    r�user_exceptionzIdb.user_exceptions]�����E�"�"�	��M�M�O�O�O��F��&�&�u�-�-������W�e�T�2�2�2�2�2rc��|jj�d��rdS|j}|jj}d|vrd|vrdS|�|��S)Nzrpc.pyT�idlelib�debuggerF)�f_code�co_filename�count�f_backr)rr�
prev_frame�	prev_names    rrzIdb.in_rpc_code#sd���<�#�)�)�(�3�3�		0��4���J�"�)�5�I��I�%�%�*�	�*A�*A��u��#�#�J�/�/�/rc��|j}|j}|j}tj�|��}|�d|��}|jdkr
|�d|j�d�}|S)N�:�?�: z())r#r$�f_lineno�os�path�basename�co_name)rr�code�filename�linenor0rs       r�__frame2messagezIdb.__frame2message/sc���|���#������7�#�#�H�-�-��%�X�X�v�v�.���<�3���$+�G�G�T�\�\�\�:�G��rN)�__name__�
__module__�__qualname__rrrrr�rrr
r
s_������������3�3�3�
0�
0�
0�����rr
c��eZdZdxZxZxZZdd�Zd�Zdd�Z	d�Z
dd�Zd�Zd�Z
d	�Zd
�Zd�Zd�Zd
�Zd�ZdZd�Zd�Zd�ZdZdZd�Zd�Zdd�Zd�Zd�Zd�Zd�Z dS)�DebuggerNc��|�t|��}||_||_d|_|���d|_d|_dS�Nr)r
�pyshell�idbr�make_gui�interacting�
nesting_level)rr>r?s   rrzDebugger.__init__>sJ���;��d�)�)�C���������
��
�
�����������rc������jdkr5�����j�d��fd���dS	d�_�jj��d�_S#d�_wxYw)Nr�dc����j��Sr)�run)�argsrs��r�<lambda>zDebugger.run.<locals>.<lambda>hs������4��r�)rB�
abort_loop�root�afterrAr?rF)rrGs``rrFzDebugger.runHs�����<���!�!��O�O�����I�O�O�C�!8�!8�!8�!8�!8�9�9�9��F�	!� �D���4�8�<��&� �D����q�D�� � � � s�A!�!	A*c�H�	|���n#t$rYnwxYw|jr|j���dS|jr |j���d|_|j���|j�	��dSr)
�quit�	ExceptionrA�top�bell�stackviewer�closer>�close_debugger�destroy�r�events  rrSzDebugger.closeps���	��I�I�K�K�K�K���	�	�	��D�	������	��H�M�M�O�O�O��F���	>���"�"�$�$�$��d�&6�	
��#�#�%�%�%���������s��
$�$c��|j}|j|_|jx|_}t|��x|_}|j�d��|j�d��|�d|j��|j�	d|j��t|��x|_}|j�d���gx|_
}t|d|j���x|_}|�|��t|d	|j���x|_}|�|��t|d
|j���x|_}|�|��t|d|j���x|_}|�|��t|d|j���x|_}|�|��|D].}|�d
���|�d����/t|��x|_}|j�d���|js3t9|��|j_|j�d��t?|d|j |j���|_!|j!�"dd���|j#st9|��|j_#t?|d|j$|j#���|_%|j%�"dd���|j&s3t9|��|j_&|j&�d��t?|d|j'|j&���|_(|j(�"dd���|j)st9|��|j_)t?|d|j*|j)���|_+|j+�"dd���tY|d���|_-|j-�d���tY|d���|_.|j.�dd���|j.�/d��|_0t|d���|_1|j1�dd���t|��|_2|j2�dd���t|d���|_3|j3�dd���|j�4��r|� ��|j&�4��r|�'��|j)�4��r|�*��dSdS)Nz
Debug Control�Debug�WM_DELETE_WINDOWz<Escape>�w)�anchor�Go)�text�command�Step�Over�Out�Quit�disabled��state�left)�siderI�Stack)r^r_�variabler��row�column�Source�Locals�Globals�x)r\�fill�
background)�height�both��expandrr)5r>�flistrKrrP�wm_title�wm_iconname�wm_protocolrS�bindr�bframe�pack�buttons�Button�cont�bcont�append�step�bstep�next�bnext�ret�bretrN�	configure�cframe�vstack�
BooleanVar�	__class__�set�Checkbutton�
show_stack�bstack�grid�vsource�show_source�bsource�vlocals�show_locals�blocals�vglobals�show_globals�bglobals�Label�status�error�cget�errorbg�fstack�flocals�fglobals�get)rr>rKrPr}�bl�br�s        rr@zDebugger.make_gui�s���,���]��
�"�<�'��	�D�'��-�-�-���3�����/�*�*�*�����W�%�%�%����*�D�J�7�7�7���
�
�j�$�*�-�-�-�$�S�z�z�)���f�������$�$�$�����r���T�4�9�E�E�E�E��
�Q�
�	�	�!������V�T�Y�G�G�G�G��
�Q�
�	�	�!������V�T�Y�G�G�G�G��
�Q�
�	�	�!�����v�E�4�8�D�D�D�D��	�A�
�	�	�!�����v�F�D�I�F�F�F�F��	�A�
�	�	�!�����	 �	 �A�
�K�K�j�K�)�)�)�
�F�F��F�����$�V�}�}�,���f�����f��%�%�%��{�	�$.�s�O�O�D�N�!��K�O�O�A����!�&��$�/�D�K�I�I�I�������Q�q��)�)�)��|�	5�%/��_�_�D�N�"�"�6��4�#3�d�l�L�L�L�������a���*�*�*��|�	 �%/��_�_�D�N�"��L���Q����"�6��4�#3�d�l�L�L�L�������a���*�*�*��}�	6�&0��o�o�D�N�#�#�F��D�$5��
�O�O�O��
��
���q���+�+�+��C��,�,�,���������$�$�$��3�s�+�+�+��
��
���s���-�-�-��z���|�4�4����C��*�*�*����������/�/�/��S�z�z����������0�0�0��c�!�,�,�,��
��
���!�&��1�1�1��;�?�?���	��O�O�����<�����	��������=�����	 ���������	 �	 rc��||_|j�|���|rS|\}}}	|j}n"#t$rdt|��z}YnwxYw|�	|�dt|����}n#YnxYwd}nd}d}|j}|j�||���|j}	|	r9|j	�
|j|��\}
}|	�|
|��|�d��|j
���r|���|jD]}|�d�	���|j���|xjdz
c_|jj�d
d��|xjdzc_|jD]}|�d�	���|j�d���|j�d|j���d|_dS)
N�r^z%sr,�yellow�)r^rsrI�normalre�vwait�::idledebugwaitrd)rr�r�r6�AttributeError�strr�r�rRr?�	get_stack�
load_stack�show_variablesr�r��sync_source_linerrP�wakeuprBrK�tk�call)
rrrr�type�value�tb�m1�bg�sv�stack�ir�s
             rrzDebugger.interaction�s;����
�����7��+�+�+��	�"�O�D�%��
&��]����!�
&�
&�
&��C��I�I�%����
&����� ��%'�R�R��U����4�B�B����D�����B�B��B��B���B��
���"���4�4�4�
�
��
�	$��x�)�)�$�*�b�9�9�H�E�1��M�M�%��#�#�#����A�����<�����	$��!�!�#�#�#���	(�	(�A�
�K�K�h�K�'�'�'�'��������	
���a�����	����'�#4�5�5�5����a������	*�	*�A�
�K�K�j�K�)�)�)�)�����2��&�&�&��
���"����>�>�>���
�
�
s�4�A�A�A.�.A2c��|j}|sdS|�|��\}}|dd�|dd�zdkr<tj�|��r|j�||��dSdSdS)NrI���z<>)r�_Debugger__frame2fileliner.r/�existsrx�gotofileline)rrr3r4s    rr�zDebugger.sync_source_line�s����
���	��F��0�0��7�7���&��B�Q�B�<�(�2�3�3�-�'�4�/�/�B�G�N�N�8�4L�4L�/��J�#�#�H�f�5�5�5�5�5�0�/�/�/rc�4�|j}|j}|j}||fSr)r#r$r-)rrr2r3r4s     r�__frame2filelinezDebugger.__frame2filelines#���|���#��������rc�`�|j���|���dSr)r?�set_continuerJ�rs rr�z
Debugger.conts,����������������rc�`�|j���|���dSr)r?rrJr�s rr�z
Debugger.step�,����������������rc�l�|j�|j��|���dSr)r?�set_nextrrJr�s rr�z
Debugger.nexts0������$�*�%�%�%��������rc�l�|j�|j��|���dSr)r?�
set_returnrrJr�s rr�zDebugger.rets0������D�J�'�'�'��������rc�`�|j���|���dSr)r?�set_quitrJr�s rrNz
Debugger.quitr�rc�H�|jj�ddd��dS)Nr�r��1)rKr�r�r�s rrJzDebugger.abort_loops%���	����%�!2�C�8�8�8�8�8rc��|js|j���rft|j|j|��x|_}|jr;|j�|jd��\}}|�	||��dSdS|j}|r4|j���sd|_|�
��d|jd<dS)NrIrt)rRr�r��StackViewerr�rxrr?r�r�rS)rr�r�r�s    rr�zDebugger.show_stack$s�����
	&�D�K�O�O�$5�$5�
	&�$/���T�Z��$N�$N�N�D��r��z�
(��8�-�-�d�j�$�?�?���q��
�
�e�Q�'�'�'�'�'�
(�
(��!�B��
�$�+�/�/�+�+�
�#'�� ����
�
�
�$%�D�K��!�!�!rc�d�|j���r|���dSdSr)r�r�r�r�s rr�zDebugger.show_source1s:���<�����	$��!�!�#�#�#�#�#�	$�	$rc�H�|d|_|���dSr=)rr�)r�	stackitems  r�
show_framezDebugger.show_frame5s%���q�\��
��������rc��|j}|j���r|st|jd��|_n'|r%d|_|���d|jd<|���dS)NrorIrt)�localsviewerr�r��NamespaceViewerr�rSr�)r�lvs  rr�zDebugger.show_locals<s��
�
���<�����	+��
L�$3�D�L�(�$K�$K��!���
+�$(��!����
�
�
�)*���X�&��������rc��|j}|j���r|st|jd��|_n'|r%d|_|���d|jd<|���dS)NrprIrt)�
globalsviewerr�r�r�r�rSr�)r�gvs  rr�zDebugger.show_globalsHs��
�
���=�����	,��
O�%4�T�]�I�%N�%N��"���
,�%)��"����
�
�
�*+��
�h�'��������rrc��|j}|j}|j}|sdx}}n|j}|j}|r|r||urd}|r&|�|||jjj��|r(|�|||jjj��dSdSr)	r�r�r�f_locals�	f_globals�	load_dictr>�interp�rpcclt)r�forcer�r�r�ldict�gdicts       rr�zDebugger.show_variablesTs���
�
��
�
���
���	� � �E�E�E��N�E��O�E��
�b�
�U�e�^�^���
�	C��L�L���t�|�':�'A�B�B�B�
�	C��L�L���t�|�':�'A�B�B�B�B�B�	C�	Crc�<�|j�||��dSr)r?�	set_break�rr3r4s   r�set_breakpoint_herezDebugger.set_breakpoint_hereds ������8�V�,�,�,�,�,rc�<�|j�||��dSr)r?�clear_breakr�s   r�clear_breakpoint_herezDebugger.clear_breakpoint_heregs ������X�v�.�.�.�.�.rc�:�|j�|��dSr)r?�clear_all_file_breaks)rr3s  r�clear_file_breakszDebugger.clear_file_breaksjs����&�&�x�0�0�0�0�0rc��|jjjD]?}|jj}	|jD]}|�||����0#t$rY�<wxYwdS)z=Load PyShellEditorWindow breakpoints into subprocess debuggerN)r>rx�inversedict�ior3�breakpointsr�r�)r�editwinr3r4s    r�load_breakpointszDebugger.load_breakpointsms����|�)�5�	�	�G��z�*�H�
�%�1�?�?�F��,�,�X�v�>�>�>�>�?��!�
�
�
���
����	�	s� A�
A�Ar)r)!r6r7r8r�r�r�r�rrFrSr@rr�r�r�r�r�r�rNrJrRr�r�r�r�r�r�r�r�r�r�r�r�r9rrr;r;:s�������,0�0�F�0�W�0�w������&!�&!�&!�P����"I �I �I �V/�/�/�/�b6�6�6� � � ����������������9�9�9��K�&�&�&�$�$�$�����L��M�
�
�
�
�
�
�C�C�C�C� -�-�-�/�/�/�1�1�1�����rr;c�F�eZdZd�Zdd�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�ZdS)r�c��tj��rtj||��ntj||d���||_||_g|_dS)N�P)�width)r�isAquaTkrrrxr
r�)r�masterrxr
s    rrzStackViewer.__init__ys[���?���	:�
�!�$��/�/�/�/��!�$��b�9�9�9�9���
������
�
�
rNc���||_|���tt|����D]�}||\}}	|jd}n	#d}YnxYw|j}|j}|j}	ddl}
|
�	||��}|�
��}|	dvr	d|||fz}n	d||	||fz}||krd|z}|�|����|�|�|��dSdS)Nr6r+r)r+r�Nz%s, line %d: %sz%s.%s(), line %d: %sz> )
r��clear�range�lenr�r#r$r1�	linecache�getline�stripr��select)
rr��indexr�rr4�modnamer2r3�funcnamer�
sourceline�items
             rr�zStackViewer.load_stack�s2����
��
�
�����s�5�z�z�"�"�	�	�A�!�!�H�M�E�6�
��/�*�5����
���������<�D��'�H��|�H�����"�*�*�8�V�<�<�J�#�)�)�+�+�J��?�*�*�(�G�V�Z�+H�H���-��(�17��1E�E���E�z�z��d�{���K�K���������K�K��������s�
A�Ac�>�|jrtj||��SdS��override base methodN)r�r�popup_eventrVs  rrzStackViewer.popup_event�s)���:�	9��+�D�%�8�8�8�	9�	9rc��|j}|�d|j���|�d|j���dS)rzGo to source line)�labelr_zShow stack frameN)�menu�add_command�goto_source_line�show_stack_frame)rrs  r�	fill_menuzStackViewer.fill_menu�s_���y�����2�!%�!6�	�	8�	8�	8����1�!%�!6�	�	8�	8�	8�	8�	8rc��d|cxkrt|j��kr+ndS|j�|j|��dSdS)rrN)rr�r
r��rrs  r�	on_selectzStackViewer.on_select�sZ����'�'�'�'��D�J���'�'�'�'�'�'��H����
�5� 1�2�2�2�2�2�(�'rc�0�|�|��dSr)r�rs  r�	on_doublezStackViewer.on_double�s����������rc�d�|j�d��}|�|��dS)N�active)�listboxrr�rs  rrzStackViewer.goto_source_line�s1����"�"�8�,�,����������rc���|j�d��}d|cxkrt|j��kr+ndS|j�|j|��dSdS)Nrr)rrrr�r
r�rs  rrzStackViewer.show_stack_frame�so����"�"�8�,�,����'�'�'�'��D�J���'�'�'�'�'�'��H����
�5� 1�2�2�2�2�2�(�'rc�0�d|cxkrt|j��ksndS|j|\}}|j}|j}tj�|��r3|j�|��}|r|�	|��dSdSdSr=)
rr�r#r$r.r/�isfilerx�open�gotoline)rrrr4r2r3�edits       rr�zStackViewer.show_source�s����U�,�,�,�,�S���_�_�,�,�,�,��F��
�5�)�
��v��|���#��
�7�>�>�(�#�#�	&��:�?�?�8�,�,�D��
&��
�
�f�%�%�%�%�%�	&�	&�
&�
&rr)r6r7r8rr�rrrrrrr�r9rrr�r�ws�������
�
�
�����49�9�9�
8�8�8�3�3�3�
 � � � � � �3�3�3�
	&�	&�	&�	&�	&rr�c�(�eZdZdd�ZdZdd�Zd�ZdS)	r�Nc
�@�d}d}|rdt|��z}||_||_ddl}|���|_d|j_d|j_t|��x|_	}|j	�
dd���t||dd	�
��|_|j�
d���t|d
���x|_}|�
dd���t|t!dt#d|����dd||f���x|_}	|	�
ddd���|	j|d<|j|	d<t|	��x|_}
|	�dd|
d���|_|�|��dS)Nr�(��<rIrurv��groove)r^�borderwidth�reliefrq)rr�vbar)�name�right�y)rhrr�,)rt�scrollregionrg)rhrrrwr_�yscrollcommand�nw)�windowr\)rr��title�reprlib�Repr�repr�	maxstring�maxotherrrr~r�rrr/�Canvas�min�max�canvas�yviewr��subframe�
create_window�sfidr�)rr�r8�dictr�rtr9rr/rArCs           rrzNamespaceViewer.__init__�s��������	"���D�	�	�\�F������
������L�L�N�N��	� ��	����	��"�6�]�]�*��
�U��
���q�v��.�.�.��5�u�!�H�M�M�M��
��
���S��!�!�!�$�U��8�8�8�8��	�D��	�	�w�S�	�)�)�)�%�e�-0��c�"�f�o�o�-F�-F�45�q�%��3H� J� J� J�	J���f�	����f�Q��7�7�7� �,��Y��#'�8��� �#(��=�=�0��
���(�(��A�h�t�(�L�L��	����t�����rr�rc���||jur|sdS|j}|j}t|j�����D]}|����d|_|s)t|d���}|�dd���n�|�	��}t|��}	d}
|	D]�}||}|j�|��}
|r
|
dd�}
t||���}|�|
dd���t|dd�	��}|�
d|
��|�|
dd���|
dz}
��||_|���|���}|���}|j}dd||f|jd
<|dkrd|d<|�d�
��dS||d<|�d�
��dS)N�Noner�rrkrIr�r6)rlrm�sticky)r�r-r4r3rt)rw)rFrCr�list�children�valuesrUr�r��keys�sortedr;�Entry�insert�update_idletasks�winfo_reqwidth�winfo_reqheightrAr~)rrFr��
rpc_clientrCr�c�l�	keys_list�namesrlr0r��svaluer�rtrAs                 rr�zNamespaceViewer.load_dict�s���4�9���U���F��=���
���h�'�.�.�0�0�1�1�	�	�A�
�I�I�K�K�K�K���	��	��h�V�,�,�,�A�
�F�F�q��F�#�#�#�#��	�	���I��9�%�%�E��C��
�
���T�
�������.�.���*�#�A�b�D�\�F��(��.�.�.�����3�q���6�6�6��(�!��;�;�;������F�#�#�#����3�q���6�6�6��!�e�����	��!�!�#�#�#��'�'�)�)���)�)�+�+�����'(�!�U�F�&;���N�#��C�<�<�"�F�8���J�J�a�J� � � � � �%�F�8���J�J�a�J� � � � � rc�8�|j���dSr)rrUr�s rrSzNamespaceViewer.closes���
�������rr)rN)r6r7r8rrFr�rSr9rrr�r��sS����������6�D�4!�4!�4!�4!�l����rr��__main__)�mainzidlelib.idle_test.test_debuggerr+F)�	verbosity�exit)rr.�tkinter�tkinter.ttkrrr!r�idlelib.scrolledlistr�idlelib.windowrrr
r;r�r�r6�unittestr\r9rr�<module>rdsx��
�
�
�
�	�	�	�	�����(�(�(�(�(�(�(�(�������-�-�-�-�-�-�)�)�)�)�)�)�+�+�+�+�+�#�'�+�+�+�\{�{�{�{�{�{�{�{�z	P&�P&�P&�P&�P&�,�P&�P&�P&�fV�V�V�V�V�V�V�V�p�z����������D�	*�a�e�D�D�D�D�D�D��r