Sindbad~EG File Manager

Current Path : /usr/local/share/gdb/python/gdb/__pycache__/
Upload File :
Current File : /usr/local/share/gdb/python/gdb/__pycache__/disassembler.cpython-311.pyc

�

��gC���dZddlZddlTddlZiZGd�de��Zd
d�Zd�ZGd�d	ej	��Z
e
��dS)zDisassembler related module.�N)�*c��eZdZdZd�Zd�ZdS)�DisassemblerzLA base class from which all user implemented disassemblers must
    inherit.c��||_dS)z�Constructor.  Takes a name, which should be a string, which can be
        used to identify this disassembler in diagnostic messages.N)�name)�selfrs  �./gdb/disassembler.py�__init__zDisassembler.__init__0s����	�	�	�c� �td���)z�A default implementation of __call__.  All sub-classes must
        override this method.  Calling this default implementation will throw
        a NotImplementedError exception.zDisassembler.__call__)�NotImplementedError)r�infos  r	�__call__zDisassembler.__call__5s��"�"9�:�:�:rN)�__name__�
__module__�__qualname__�__doc__r
r�rr	rr,s<�����������
;�;�;�;�;rrc��t|t��s|�td���d}|tvrt|}t|=|�
|t|<tj�tt��dk��|S)a�Register a disassembler.  DISASSEMBLER is a sub-class of
    gdb.disassembler.Disassembler.  ARCHITECTURE is either None or a
    string, the name of an architecture known to GDB.

    DISASSEMBLER is registered as a disassembler for ARCHITECTURE, or
    all architectures when ARCHITECTURE is None.

    Returns the previous disassembler registered with this
    ARCHITECTURE value.
    Nz;disassembler should sub-class gdb.disassembler.Disassemblerr)�
isinstancer�	TypeError�_disassemblers_dict�_gdb�disassembler�_set_enabled�len)r�architecture�olds   r	�register_disassemblerr<s����l�L�1�1�W�l�6N��U�V�V�V�
�C��*�*�*�!�,�/����-���,8��L�)�	��"�"�3�':�#;�#;�a�#?�@�@�@��Jrc�F�d�}||j��}|�dS||��S)z�This function is called by GDB when it wants to disassemble an
    instruction.  INFO describes the instruction to be
    disassembled.c��|���}|�dS|tvr
t|Sdtvr
tdSdS�N)rr)�archrs  r	�lookup_disassemblerz(_print_insn.<locals>.lookup_disassemblerasL���y�y�{�{���<��4��&�&�&�&�t�,�,��&�&�&�&�t�,�,��trN)r)rr$rs   r	�_print_insnr%\sA��
���'�&�t�'8�9�9�L����t��<����rc�(��eZdZdZ�fd�Zd�Z�xZS)�maint_info_py_disassemblers_cmda�
    List all registered Python disassemblers.

    List the name of all registered Python disassemblers, next to the
    name of the architecture for which the disassembler is registered.

    The global Python disassembler is listed next to the string
    'GLOBAL'.

    The disassembler that matches the architecture of the currently
    selected inferior will be marked, this is an indication of which
    disassembler will be invoked if any disassembly is performed in
    the current inferior.
    c�`��t���dtj��dS)Nz%maintenance info python-disassemblers)�superr
�gdb�COMMAND_USER)r�	__class__s �r	r
z(maint_info_py_disassemblers_cmd.__init__�s'���
�����@�#�BR�S�S�S�S�Src�D�tt��dkrtd��dSd}tD]8}|�4t|j}t|��|krt|��}�9d}t	j���7t	j��������}d}t|td����}dt|��zdz}	t|	�	dd����tD]F}|�Bt|j}||kr||z
}d}t|	�	||�����Gdtvr:tdj|z}t|	�	d	|����dSdS)
Nrz#No Python disassemblers registered.�z	(Matches current architecture)�Architecturez{:zs} {:s}zDisassember Name�GLOBAL)
rr�printrr*�selected_inferiorr�max�str�format)
r�args�from_tty�longest_arch_namerr�	curr_arch�	match_tag�fmt_len�
format_strings
          r	�invokez&maint_info_py_disassemblers_cmd.invoke�s����"�#�#�q�(�(��7�8�8�8��F���/�	2�	2�L��'�*�<�8�=���t�9�9�0�0�0�(+�D�	�	�%���	�� �"�"�.��-�/�/�<�<�>�>�C�C�E�E�I�7�	��'��^�)<�)<�=�=���s�7�|�|�+�i�7�
�
�m�"�"�>�3E�F�F�G�G�G�/�	@�	@�L��'�*�<�8�=���9�,�,��I�%�D� "�I��m�*�*�<��>�>�?�?�?���&�&�&�&�t�,�1�I�=�D��-�&�&�x��6�6�7�7�7�7�7�'�&r)rrrrr
r=�
__classcell__)r,s@r	r'r'qsV�������
�
�T�T�T�T�T�&8�&8�&8�&8�&8�&8�&8rr'r")r�_gdb.disassemblerrr*r�objectrrr%�Commandr'rrr	�<module>rBs��� #�"�����
 ����
�
�
�
� ��
;�
;�
;�
;�
;�6�
;�
;�
;� ����@���*98�98�98�98�98�c�k�98�98�98�x ��!�!�!�!�!r

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists