Current File : //usr/share/gdb/python/gdb/function/__pycache__/strfns.cpython-39.pyc
a

ɱZh+�@sxdZddlZddlZGdd�dej�ZGdd�dej�ZGdd�dej�ZGd	d
�d
ej�Ze�e�e�e�dS)z#$_memeq, $_strlen, $_streq, $_regex�Ncs(eZdZdZ�fdd�Zdd�Z�ZS)�_MemEqz�$_memeq - compare bytes of memory.

    Usage: $_memeq (A, B, LEN)

    Returns:
      True if LEN bytes at A and B compare equally.cstt|��d�dS)NZ_memeq)�superr�__init__��self��	__class__��,/usr/share/gdb/python/gdb/function/strfns.pyrsz_MemEq.__init__cCs\|dkrtd��|dkrdSt�d��|d�}|��}|�|�}|�|�}|��|��kS)Nrzlength must be non-negativeT�char�)�
ValueError�gdbZlookup_typeZvectorZpointerZreinterpret_castZdereference)r�a�b�lengthZbyte_vectorZptr_byte_vectorZa_ptrZb_ptrr	r	r
�invoke"s

z
_MemEq.invoke��__name__�
__module__�__qualname__�__doc__rr�
__classcell__r	r	rr
rsrcs(eZdZdZ�fdd�Zdd�Z�ZS)�_StrLenz�$_strlen - compute string length.

    Usage: $_strlen (A)

    Returns:
      Length of string A, assumed to be a string in the current language.cstt|��d�dS)NZ_strlen)rrrrrr	r
r7sz_StrLen.__init__cCs|��}t|�S�N)�string�len)rr�sr	r	r
r:sz_StrLen.invokerr	r	rr
r/srcs(eZdZdZ�fdd�Zdd�Z�ZS)�_StrEqz�$_streq - check string equality.

    Usage: $_streq (A, B)

    Returns:
      True if A and B are identical strings in the current language.

    Example (amd64-linux):
      catch syscall open
      cond $bpnum $_streq((char*) $rdi, "foo")cstt|��d�dS)NZ_streq)rrrrrr	r
rKsz_StrEq.__init__cCs|��|��kSr)r)rrrr	r	r
rNsz
_StrEq.invokerr	r	rr
r?srcs(eZdZdZ�fdd�Zdd�Z�ZS)�_RegExz�$_regex - check if a string matches a regular expression.

    Usage: $_regex (STRING, REGEX)

    Returns:
      True if string STRING (in the current language) matches the
      regular expression REGEX.cstt|��d�dS)NZ_regex)rrrrrr	r
r[sz_RegEx.__init__cCs$|��}t�|���}t|�|��Sr)r�re�compile�bool�match)rrZregexr�rr	r	r
r^sz
_RegEx.invokerr	r	rr
rRsr)rrr ZFunctionrrrrr	r	r	r
�<module>s