BYPASS SHELL BY ./RAZORGANZ
Server: nginx/1.20.1
System: Linux iZdzfnv9mwfppeZ 5.10.134-19.2.al8.x86_64 #1 SMP Wed Oct 29 22:47:09 CST 2025 x86_64
User: apache (48)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: //usr/share/glib-2.0/gdb/__pycache__/glib_gdb.cpython-36.opt-1.pyc
3

]xa� �@s�ddlZddlZejddkr"eZdd�Zdd�ZGdd�d�ZGd	d
�d
�ZGdd�d�Z	Gd
d�d�Z
dd�Zdd�ZGdd�dej
�Ze�dS)�N�cCstj�j|�S)N)�gdbZselected_frameZread_var)Zsymname�r�$./usr/share/glib-2.0/gdb/glib_gdb.py�read_global_var	srcCs�|dkrdSt|�}|dkr dSytd�}ttd��}WnBtk
rzytd�}ttd��}Wntk
rtdSXYnX||kr�||j�SdS)NrZquarksZquark_seq_idZg_quarksZg_quark_seq_id)�longr�	Exception�string)Zquark�valZmax_qrrr�g_quark_to_string
s"rc@s eZdZdZdd�Zdd�ZdS)�GListNodePrinterzPrints a GList nodecCs
||_dS)N)r
)�selfr
rrr�__init__%szGListNodePrinter.__init__cCs,dt|jd�t|jd�t|jd�fS)Nz{data=%s, next=0x%x, prev=0x%x}�data�next�prev)�strr
r)r
rrr�	to_string(szGListNodePrinter.to_stringN)�__name__�
__module__�__qualname__�__doc__rrrrrrr"src@s eZdZdZdd�Zdd�ZdS)�GSListNodePrinterzPrints a GSList nodecCs
||_dS)N)r
)r
r
rrrr3szGSListNodePrinter.__init__cCs dt|jd�t|jd�fS)Nz{data=%s, next=0x%x}rr)rr
r)r
rrrr6szGSListNodePrinter.to_stringN)rrrrrrrrrrr0src@s>eZdZdZGdd�d�Zdd�Zdd�Zdd	�Zd
d�ZdS)
�GListPrinterzPrints a GListc@s(eZdZdd�Zdd�Zdd�ZeZdS)zGListPrinter._iteratorcCs||_||_d|_dS)Nr)�link�listtype�count)r
�headrrrrr>szGListPrinter._iterator.__init__cCs|S)Nr)r
rrr�__iter__CszGListPrinter._iterator.__iter__cCsB|jdkrt�|jd}|jd|_|j}|jd|_d||fS)Nrrr�z[%d])r�
StopIterationr)r
rrrrrrFs

zGListPrinter._iterator.nextN)rrrrrr�__next__rrrr�	_iterator=s	r"cCs||_||_dS)N)r
r)r
r
rrrrrQszGListPrinter.__init__cCs|j|j|j�S)N)r"r
r)r
rrr�childrenUszGListPrinter.childrencCsdt|j�S)Nz0x%x)rr
)r
rrrrXszGListPrinter.to_stringcCsdS)NZarrayr)r
rrr�display_hint[szGListPrinter.display_hintN)	rrrrr"rr#rr$rrrrr:src@s>eZdZdZGdd�d�Zdd�Zdd�Zdd	�Zd
d�ZdS)
�GHashPrinterzPrints a GHashTablec@s6eZdZGdd�d�Zdd�Zdd�Zdd�ZeZd	S)
zGHashPrinter._iteratorc@seZdZdd�Zdd�ZdS)z%GHashPrinter._iterator._pointer_arraycCs<||_tjd�|_|jr|jntjd�}|j|j��|_dS)NZgpointerZguint)�
_big_itemsr�lookup_type�_gpointer_type�cast�pointer�_items)r
ZptrZ	big_itemsZ	item_typerrrrdsz.GHashPrinter._iterator._pointer_array.__init__cCs |j|}|js|j|j�}|S)N)r+r&r)r()r
�itemrrr�__getitem__ms
z1GHashPrinter._iterator._pointer_array.__getitem__N)rrrrr-rrrr�_pointer_arraycs	r.cCsd||_|dkrN|j|d|d�|_|j|d|d�|_|d|_|d|_d|_||_d|_dS)Nr�keysZ
have_big_keys�valuesZhave_big_values�hashes�size)	�htr.r/r0r1r2�pos�keys_are_strings�value)r
r3r5rrrrus

zGHashPrinter._iterator.__init__cCs|S)Nr)r
rrrr�szGHashPrinter._iterator.__iter__cCs�|jdkrt�|jdk	r(|j}d|_|Sx�t|j�t|j�kr�t|j|j�dkr�|j|j}|j|j}|j	r�|j
tjd�j
��}d|j|f|_d|j|f}|jd7_|S|jd7_q*Wt�dS)Nr��charz[%dv]z[%dk]r)r3r r6rr4r2r1r/r0r5r)rr'r*)r
�v�keyr
rrrr�s$

zGHashPrinter._iterator.nextN)rrrr.rrrr!rrrrr"bs
r"cCs\||_d|_ytd�}Wntk
r0d}YnX|jdkrX|dk	rX|jd|krXd|_dS)NFZ
g_str_hashrZ	hash_funcT)r
r5rr)r
r
Zstring_hashrrrr�s

zGHashPrinter.__init__cCs|j|j|j�S)N)r"r
r5)r
rrrr#�szGHashPrinter.childrencCsdt|j�S)Nz0x%x)rr
)r
rrrr�szGHashPrinter.to_stringcCsdS)N�mapr)r
rrrr$�szGHashPrinter.display_hintN)	rrrrr"rr#rr$rrrrr%_s=r%cCs�|jj�}|jtjkr|j�}|jtjkrt|j�j�}t|�}|dkrPt|d�S|dkrbt|d�S|dkr�t	|�Sn*t|�}|dkr�t
|�S|dkr�t|d�SdS)N�GList�GSListZ
GHashTablezGSList *)�type�unqualified�coderZ
TYPE_CODE_REF�target�
TYPE_CODE_PTRrrr%r)r
r>�trrr�pretty_printer_lookup�s$




rDcCs|dkrt}|jjt�dS)N)rZpretty_printers�appendrD)�objrrr�register�srGcsXeZdZdZ�fdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Z�ZS)�ForeachCommandzForeach on listcstt|�jdtjtj�dS)NZgforeach)�superrHrrZCOMMAND_DATAZCOMPLETE_SYMBOL)r
)�	__class__rrr�s
zForeachCommand.__init__cCs|dj�sdSdS)NrFT)�isalpha)r
�namerrr�
valid_name�szForeachCommand.valid_namecCs|jd�}|dkrtd��|d|�}|j|�s8td��x$|t|�kr\||j�r\|d}q:W|||d�dkrztd��|d}x$|t|�kr�||j�r�|d}q�W|jd	|�}|dkr�td
��|||�}|d}x&|t|�ko�||j��r�|d}q�W||d�}|||fS)N� rzNo var specifiedzInvalid variable namerr7�inzInvalid syntax, missing in�:zInvalid syntax, missing colon���)�findrrM�len�isspace)r
�arg�i�varZcolonr
�commandrrr�
parse_args�s,

zForeachCommand.parse_argscCs@|jtjd�j��}t|�}d||f}tj|�tj|�dS)N�voidzset $%s = (void *)0x%x
)r)rr'r*rZexecute)r
rUr,rXZto_evalrrr�do_iters

zForeachCommand.do_itercCsD|jtjd�j��}x*t|�dkr>|j||d|�|d}qWdS)Nr=rrr)r)rr'r*rr[)r
rU�	containerrX�list_elementrrr�slist_iteratorszForeachCommand.slist_iteratorcCsD|jtjd�j��}x*t|�dkr>|j||d|�|d}qWdS)Nr<rrr)r)rr'r*rr[)r
rUr\rXr]rrr�
list_iteratorszForeachCommand.list_iteratorcCs\|jj�}|jtjkrF|j�j�}t|�}|dkr8|jS|dkrF|jSt	dt|j���dS)Nr=r<zInvalid container type %s)
r>r?r@rrBrArr^r_r)r
r\rCrrr�
pick_iterators
zForeachCommand.pick_iteratorcCs4|j|�\}}}tj|�}|j|�}||||�dS)N)rYrZparse_and_evalr`)r
rUZfrom_ttyrWr\rX�funcrrr�invoke%s

zForeachCommand.invoke)
rrrrrrMrYr[r^r_r`rb�
__classcell__rr)rJrrH�s!rH)r�sys�version_info�intrrrrrrr%rDrGZCommandrHrrrr�<module>s
%XS