403Webshell
Server IP : 172.24.0.40  /  Your IP : 216.73.216.10
Web Server : Apache
System : Linux dbweb26.ust.edu.ph 4.18.0-513.5.1.el8_9.x86_64 #1 SMP Fri Sep 29 05:21:10 EDT 2023 x86_64
User : apache ( 48)
PHP Version : 8.2.18
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /proc/self/root/usr/share/gcc-8/python/libstdcxx/v6/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /proc/self/root/usr/share/gcc-8/python/libstdcxx/v6/__pycache__/xmethods.cpython-36.pyc
3

���`<l�@s�ddlZddlZddlZdZdd�Zdd�ZGdd�dejj�ZGd	d
�d
ejj	�Z
Gdd�de
�ZGd
d�de
�ZGdd�de
�Z
Gdd�de
�ZGdd�de
�ZGdd�de
�ZGdd�dejj�ZGdd�dejj	�ZGdd�de�ZGdd�de�ZGdd �d e�ZGd!d"�d"e�ZGd#d$�d$e�ZGd%d&�d&e�ZGd'd(�d(ejj�ZGd)d*�d*ejj�ZGd+d,�d,e�ZGd-d.�d.e�ZGd/d0�d0ejj�ZGd1d2�d2ejj	�ZGd3d4�d4e�Z Gd5d6�d6e�Z!Gd7d8�d8e�Z"Gd9d:�d:e�Z#Gd;d<�d<ejj�Z$Gd=d>�d>ejj	�Z%Gd?d@�d@e%�Z&GdAdB�dBe%�Z'GdCdD�dDe%�Z(GdEdF�dFe%�Z)GdGdH�dHe%�Z*GdIdJ�dJe%�Z+GdKdL�dLejj�Z,GdMdN�dNejj	�Z-GdOdP�dPe-�Z.GdQdR�dRe-�Z/GdSdT�dTejj�Z0GdUdV�dVejj	�Z1GdWdX�dXe1�Z2GdYdZ�dZe1�Z3Gd[d\�d\ejj�Z4Gd]d^�d^ejj	�Z5Gd_d`�d`e5�Z6Gdadb�dbe5�Z7Gdcdd�ddejj	�Z8Gdedf�dfe8�Z9Gdgdh�dhejj�Z:didj�Z;dS)k�Nzlibstdc++::cCs
tjd�S)N�bool)�gdb�lookup_type�rr�0/usr/share/gcc-8/python/libstdcxx/v6/xmethods.py�
get_bool_typesrcCs
tjd�S)Nzstd::size_t)rrrrrr�get_std_size_typesrc@seZdZdd�ZdS)�LibStdCxxXMethodcCstjjj||�||_dS)N)r�xmethod�XMethod�__init__�worker_class)�self�namer
rrrrszLibStdCxxXMethod.__init__N)�__name__�
__module__�__qualname__rrrrrr	sr	c@seZdZdd�Zdd�ZdS)�ArrayWorkerBasecCs||_||_dS)N)�	_val_type�_size)r�val_type�sizerrrr&szArrayWorkerBase.__init__cCstjd�}|j|jj��j�S)Nz
(void *) 0)rZparse_and_eval�castr�pointer�dereference)rZnullptrrrr�
null_value*s
zArrayWorkerBase.null_valueN)rrrrrrrrrr%src@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�ArraySizeWorkercCstj|||�dS)N)rr)rrrrrrr/szArraySizeWorker.__init__cCsdS)Nr)rrrr�
get_arg_types2szArraySizeWorker.get_arg_typescCst�S)N)r)r�objrrr�get_result_type5szArraySizeWorker.get_result_typecCs|jS)N)r)rrrrr�__call__8szArraySizeWorker.__call__N)rrrrrrr rrrrr.src@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�ArrayEmptyWorkercCstj|||�dS)N)rr)rrrrrrr<szArrayEmptyWorker.__init__cCsdS)Nr)rrrrr?szArrayEmptyWorker.get_arg_typescCst�S)N)r)rrrrrrBsz ArrayEmptyWorker.get_result_typecCst|j�dkS)Nr)�intr)rrrrrr EszArrayEmptyWorker.__call__N)rrrrrrr rrrrr!;sr!c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�ArrayFrontWorkercCstj|||�dS)N)rr)rrrrrrrIszArrayFrontWorker.__init__cCsdS)Nr)rrrrrLszArrayFrontWorker.get_arg_typescCs|jS)N)r)rrrrrrOsz ArrayFrontWorker.get_result_typecCs&t|j�dkr|ddS|j�SdS)Nr�_M_elems)r"rr)rrrrrr RszArrayFrontWorker.__call__N)rrrrrrr rrrrr#Hsr#c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�ArrayBackWorkercCstj|||�dS)N)rr)rrrrrrrYszArrayBackWorker.__init__cCsdS)Nr)rrrrr\szArrayBackWorker.get_arg_typescCs|jS)N)r)rrrrrr_szArrayBackWorker.get_result_typecCs,t|j�dkr |d|jdS|j�SdS)Nrr$�)r"rr)rrrrrr bszArrayBackWorker.__call__N)rrrrrrr rrrrr%Xsr%c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�
ArrayAtWorkercCstj|||�dS)N)rr)rrrrrrriszArrayAtWorker.__init__cCst�S)N)r)rrrrrlszArrayAtWorker.get_arg_typescCs|jS)N)r)rr�indexrrrroszArrayAtWorker.get_result_typecCs4t|�t|j�kr(tdt|�|jf��|d|S)Nz%Array index "%d" should not be >= %d.r$)r"r�
IndexError)rrr(rrrr rszArrayAtWorker.__call__N)rrrrrrr rrrrr'hsr'c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�ArraySubscriptWorkercCstj|||�dS)N)rr)rrrrrrryszArraySubscriptWorker.__init__cCst�S)N)r)rrrrr|sz"ArraySubscriptWorker.get_arg_typescCs|jS)N)r)rrr(rrrrsz$ArraySubscriptWorker.get_result_typecCs&t|j�dkr|d|S|j�SdS)Nrr$)r"rr)rrr(rrrr �szArraySubscriptWorker.__call__N)rrrrrrr rrrrr*xsr*c@seZdZdd�Zdd�ZdS)�ArrayMethodsMatchercsftjjj�td�tdt�tdt�tdt�tdt	�tdt
�tdt�d��_�fd	d
��jD��_
dS)NZarrayr�empty�front�back�atz
operator[])rr,r-r.r/z
operator[]csg|]}�j|�qSr)�_method_dict)�.0�m)rrr�
<listcomp>�sz0ArrayMethodsMatcher.__init__.<locals>.<listcomp>)rr
�XMethodMatcherr�matcher_name_prefixr	rr!r#r%r'r*r0�methods)rr)rrr�s

zArrayMethodsMatcher.__init__c	Csbtjd|j�sdS|jj|�}|dks.|jr2dSy|jd�}|jd�}Wn
dS|j||�S)Nz^std::(__\d+::)?array<.*>$rr&)�re�match�tagr0�get�enabled�template_argumentr
)r�
class_type�method_name�methodZ
value_typerrrrr8�s
zArrayMethodsMatcher.matchN)rrrrr8rrrrr+�s
r+c@s$eZdZdd�Zdd�Zdd�ZdS)�DequeWorkerBasecCs||_d|jpd|_dS)Nir&)r�sizeof�_bufsize)rrrrrr�szDequeWorkerBase.__init__cCsV|ddd}|ddd}|ddd}|ddd}|||j||S)N�_M_impl�_M_start�_M_node�	_M_finish�_M_cur�_M_first)rB)rr�
first_nodeZ	last_nodeZcur�firstrrrr�s
zDequeWorkerBase.sizecCs4|ddd}|t|�|j}|d||jS)NrCrDrEr)r"rB)rr�idxrIZ
index_noderrrr(�szDequeWorkerBase.indexN)rrrrrr(rrrrr@�sr@c@s$eZdZdd�Zdd�Zdd�ZdS)�DequeEmptyWorkercCsdS)Nr)rrrrr�szDequeEmptyWorker.get_arg_typescCst�S)N)r)rrrrrr�sz DequeEmptyWorker.get_result_typecCs |ddd|dddkS)NrCrDrGrFr)rrrrrr �szDequeEmptyWorker.__call__N)rrrrrr rrrrrL�srLc@s$eZdZdd�Zdd�Zdd�ZdS)�DequeSizeWorkercCsdS)Nr)rrrrr�szDequeSizeWorker.get_arg_typescCst�S)N)r)rrrrrr�szDequeSizeWorker.get_result_typecCs
|j|�S)N)r)rrrrrr �szDequeSizeWorker.__call__N)rrrrrr rrrrrM�srMc@s$eZdZdd�Zdd�Zdd�ZdS)�DequeFrontWorkercCsdS)Nr)rrrrr�szDequeFrontWorker.get_arg_typescCs|jS)N)r)rrrrrr�sz DequeFrontWorker.get_result_typecCs|ddddS)NrCrDrGrr)rrrrrr �szDequeFrontWorker.__call__N)rrrrrr rrrrrN�srNc@s$eZdZdd�Zdd�Zdd�ZdS)�DequeBackWorkercCsdS)Nr)rrrrr�szDequeBackWorker.get_arg_typescCs|jS)N)r)rrrrrr�szDequeBackWorker.get_result_typecCs^|ddd|dddkrF|dddd}|d|jdS|ddddSdS)	NrCrFrGrHrEr&r���)rB)rr�	prev_noderrrr �s
zDequeBackWorker.__call__N)rrrrrr rrrrrO�srOc@s$eZdZdd�Zdd�Zdd�ZdS)�DequeSubscriptWorkercCst�S)N)r)rrrrr�sz"DequeSubscriptWorker.get_arg_typescCs|jS)N)r)rr�	subscriptrrrr�sz$DequeSubscriptWorker.get_result_typecCs|j||�S)N)r()rrrSrrrr �szDequeSubscriptWorker.__call__N)rrrrrr rrrrrR�srRc@s$eZdZdd�Zdd�Zdd�ZdS)�
DequeAtWorkercCst�S)N)r)rrrrr�szDequeAtWorker.get_arg_typescCs|jS)N)r)rrr(rrrr�szDequeAtWorker.get_result_typecCs@t|j|��}t|�|kr0tdt|�|f��n|j||�SdS)Nz%Deque index "%d" should not be >= %d.)r"rr)r()rrr(Z
deque_sizerrrr �s
zDequeAtWorker.__call__N)rrrrrr rrrrrT�srTc@seZdZdd�Zdd�ZdS)�DequeMethodsMatchercsftjjj�td�tdt�tdt�tdt�tdt	�tdt
�tdt�d��_�fd	d
��jD��_
dS)N�dequer,rr-r.z
operator[]r/)r,rr-r.z
operator[]r/csg|]}�j|�qSr)r0)r1r2)rrrr3	sz0DequeMethodsMatcher.__init__.<locals>.<listcomp>)rr
r4rr5r	rLrMrNrOrRrTr0r6)rr)rrr�s

zDequeMethodsMatcher.__init__cCsBtjd|j�sdS|jj|�}|dks.|jr2dS|j|jd��S)Nz^std::(__\d+::)?deque<.*>$r)r7r8r9r0r:r;r
r<)rr=r>r?rrrr8szDequeMethodsMatcher.matchN)rrrrr8rrrrrU�s
rUc@seZdZdd�Zdd�ZdS)�ForwardListWorkerBasecCs||_||_dS)N)r�
_node_type)rr�	node_typerrrrszForwardListWorkerBase.__init__cCsdS)Nr)rrrrrsz#ForwardListWorkerBase.get_arg_typesN)rrrrrrrrrrWsrWc@seZdZdd�Zdd�ZdS)�ForwardListEmptyWorkercCst�S)N)r)rrrrrrsz&ForwardListEmptyWorker.get_result_typecCs|ddddkS)NrC�_M_head�_M_nextrr)rrrrrr !szForwardListEmptyWorker.__call__N)rrrrr rrrrrZsrZc@seZdZdd�Zdd�ZdS)�ForwardListFrontWorkercCs|jS)N)r)rrrrrr%sz&ForwardListFrontWorker.get_result_typecCs:|dddj|j�}|ddj}|j|jj��j�S)NrCr[r\�
_M_storage)rrX�addressrrr)rr�nodeZval_addressrrrr (szForwardListFrontWorker.__call__N)rrrrr rrrrr]$sr]c@seZdZdd�Zdd�ZdS)�ForwardListMethodsMatchercsJtd}tjjj�|�tdt�tdt�d��_�fdd��jD��_	dS)NZforward_listr,r-)r,r-csg|]}�j|�qSr)r0)r1r2)rrrr35sz6ForwardListMethodsMatcher.__init__.<locals>.<listcomp>)
r5rr
r4rr	rZr]r0r6)rZmatcher_namer)rrr.s
z"ForwardListMethodsMatcher.__init__cCs^tjd|j�sdS|jj|�}|dks.|jr2dS|jd�}tjt	|�d�j
�}|j||�S)Nz!^std::(__\d+::)?forward_list<.*>$rz::_Node)r7r8r9r0r:r;r<rr�strrr
)rr=r>r?rrYrrrr87s
zForwardListMethodsMatcher.matchN)rrrrr8rrrrra-s	rac@s$eZdZdd�Zdd�Zdd�ZdS)�ListWorkerBasecCs||_||_dS)N)rrX)rrrYrrrrDszListWorkerBase.__init__cCsdS)Nr)rrrrrHszListWorkerBase.get_arg_typescCsB|j�}|jj�djdkr$|dS|dj}|j|jj��j�S)Nr&Z_M_datar^)r�type�fieldsrr_rrr)rr`Zaddrrrr�get_value_from_nodeKs

z"ListWorkerBase.get_value_from_nodeN)rrrrrrfrrrrrcCsrcc@seZdZdd�Zdd�ZdS)�ListEmptyWorkercCst�S)N)r)rrrrrrUszListEmptyWorker.get_result_typecCs&|dd}|d|jkrdSdSdS)NrCrEr\TF)r_)rrZ	base_noderrrr XszListEmptyWorker.__call__N)rrrrr rrrrrgTsrgc@seZdZdd�Zdd�ZdS)�ListSizeWorkercCst�S)N)r)rrrrrr`szListSizeWorker.get_result_typecCsD|ddd}|ddj}d}x||kr>|d}|d7}q$W|S)NrCrEr\rr&)r_)rrZ
begin_nodeZend_noderrrrr cs
zListSizeWorker.__call__N)rrrrr rrrrrh_srhc@seZdZdd�Zdd�ZdS)�ListFrontWorkercCs|jS)N)r)rrrrrrmszListFrontWorker.get_result_typecCs"|dddj|j�}|j|�S)NrCrEr\)rrXrf)rrr`rrrr pszListFrontWorker.__call__N)rrrrr rrrrrilsric@seZdZdd�Zdd�ZdS)�ListBackWorkercCs|jS)N)r)rrrrrruszListBackWorker.get_result_typecCs"|dddj|j�}|j|�S)NrCrEZ_M_prev)rrXrf)rrrQrrrr xszListBackWorker.__call__N)rrrrr rrrrrjtsrjc@seZdZdd�Zdd�ZdS)�ListMethodsMatchercsVtjjj�td�tdt�tdt�tdt�tdt	�d��_
�fdd��j
D��_dS)	N�listr,rr-r.)r,rr-r.csg|]}�j|�qSr)r0)r1r2)rrrr3�sz/ListMethodsMatcher.__init__.<locals>.<listcomp>)rr
r4rr5r	rgrhrirjr0r6)rr)rrr}s

zListMethodsMatcher.__init__cCs^tjd|j�sdS|jj|�}|dks.|jr2dS|jd�}tjt	|�d�j
�}|j||�S)Nz%^std::(__\d+::)?(__cxx11::)?list<.*>$rz::_Node)r7r8r9r0r:r;r<rrrbrr
)rr=r>r?rrYrrrr8�s
zListMethodsMatcher.matchN)rrrrr8rrrrrk|srkc@s$eZdZdd�Zdd�Zdd�ZdS)�VectorWorkerBasecCs
||_dS)N)r)rrrrrr�szVectorWorkerBase.__init__cCsz|jjtjkr^|ddd}|ddd}|ddd}|j�jjd}||||S|dd|ddSdS)NrCrD�_M_prFZ	_M_offset�)r�coder�TYPE_CODE_BOOLrrdrA)rr�startZfinishZ
finish_offset�bit_sizerrrr�szVectorWorkerBase.sizecCsj|jjtjkrV|ddd}|j�jjd}|||}||}|j�d|>@dkS|dd|SdS)NrCrDrnror&r)rrprrqrrdrA)rrr(rrrsZvalp�offsetrrrr:�szVectorWorkerBase.getN)rrrrrr:rrrrrm�s
rmc@s$eZdZdd�Zdd�Zdd�ZdS)�VectorEmptyWorkercCsdS)Nr)rrrrr�szVectorEmptyWorker.get_arg_typescCst�S)N)r)rrrrrr�sz!VectorEmptyWorker.get_result_typecCst|j|��dkS)Nr)r"r)rrrrrr �szVectorEmptyWorker.__call__N)rrrrrr rrrrru�sruc@s$eZdZdd�Zdd�Zdd�ZdS)�VectorSizeWorkercCsdS)Nr)rrrrr�szVectorSizeWorker.get_arg_typescCst�S)N)r)rrrrrr�sz VectorSizeWorker.get_result_typecCs
|j|�S)N)r)rrrrrr �szVectorSizeWorker.__call__N)rrrrrr rrrrrv�srvc@s$eZdZdd�Zdd�Zdd�ZdS)�VectorFrontWorkercCsdS)Nr)rrrrr�szVectorFrontWorker.get_arg_typescCs|jS)N)r)rrrrrr�sz!VectorFrontWorker.get_result_typecCs|j|d�S)Nr)r:)rrrrrr �szVectorFrontWorker.__call__N)rrrrrr rrrrrw�srwc@s$eZdZdd�Zdd�Zdd�ZdS)�VectorBackWorkercCsdS)Nr)rrrrr�szVectorBackWorker.get_arg_typescCs|jS)N)r)rrrrrr�sz VectorBackWorker.get_result_typecCs|j|t|j|��d�S)Nr&)r:r"r)rrrrrr �szVectorBackWorker.__call__N)rrrrrr rrrrrx�srxc@s$eZdZdd�Zdd�Zdd�ZdS)�VectorAtWorkercCst�S)N)r)rrrrr�szVectorAtWorker.get_arg_typescCs|jS)N)r)rrr(rrrr�szVectorAtWorker.get_result_typecCs>t|j|��}t|�|kr.tdt|�|f��|j|t|��S)Nz&Vector index "%d" should not be >= %d.)r"rr)r:)rrr(rrrrr �s
zVectorAtWorker.__call__N)rrrrrr rrrrry�sryc@s$eZdZdd�Zdd�Zdd�ZdS)�VectorSubscriptWorkercCst�S)N)r)rrrrr�sz#VectorSubscriptWorker.get_arg_typescCs|jS)N)r)rrrSrrrr�sz%VectorSubscriptWorker.get_result_typecCs|j|t|��S)N)r:r")rrrSrrrr �szVectorSubscriptWorker.__call__N)rrrrrr rrrrrz�srzc@seZdZdd�Zdd�ZdS)�VectorMethodsMatchercsftjjj�td�tdt�tdt�tdt�tdt	�tdt
�tdt�d��_�fd	d
��jD��_
dS)NZvectorrr,r-r.r/z
operator[])rr,r-r.r/z
operator[]csg|]}�j|�qSr)r0)r1r2)rrrr3�sz1VectorMethodsMatcher.__init__.<locals>.<listcomp>)rr
r4rr5r	rvrurwrxryrzr0r6)rr)rrr�s

zVectorMethodsMatcher.__init__cCsBtjd|j�sdS|jj|�}|dks.|jr2dS|j|jd��S)Nz^std::(__\d+::)?vector<.*>$r)r7r8r9r0r:r;r
r<)rr=r>r?rrrr8�szVectorMethodsMatcher.matchN)rrrrr8rrrrr{�sr{c@s$eZdZdd�Zdd�Zdd�ZdS)�AssociativeContainerWorkerBasecCs
||_dS)N)�
_unordered)r�	unorderedrrrrsz'AssociativeContainerWorkerBase.__init__cCs&|jr|ddS|dddSdS)NZ_M_hZ_M_element_count�_M_trCZ
_M_node_count)r})rrrrr�
node_count	sz)AssociativeContainerWorkerBase.node_countcCsdS)Nr)rrrrrsz,AssociativeContainerWorkerBase.get_arg_typesN)rrrrr�rrrrrr|sr|c@seZdZdd�Zdd�ZdS)�AssociativeContainerEmptyWorkercCst�S)N)r)rrrrrrsz/AssociativeContainerEmptyWorker.get_result_typecCst|j|��dkS)Nr)r"r�)rrrrrr sz(AssociativeContainerEmptyWorker.__call__N)rrrrr rrrrr�sr�c@seZdZdd�Zdd�ZdS)�AssociativeContainerSizeWorkercCst�S)N)r)rrrrrrsz.AssociativeContainerSizeWorker.get_result_typecCs
|j|�S)N)r�)rrrrrr sz'AssociativeContainerSizeWorker.__call__N)rrrrr rrrrr�sr�c@seZdZdd�Zdd�ZdS)�"AssociativeContainerMethodsMatchercsLtjjj�t|�|�_tdt�tdt�d��_	�fdd��j	D��_
dS)Nrr,)rr,csg|]}�j|�qSr)r0)r1r2)rrrr3*sz?AssociativeContainerMethodsMatcher.__init__.<locals>.<listcomp>)rr
r4rr5�_namer	r�r�r0r6)rrr)rrr!s

z+AssociativeContainerMethodsMatcher.__init__cCsLtjd|j|j�sdS|jj|�}|dks4|jr8dSd|jk}|j|�S)Nz^std::(__\d+::)?%s<.*>$r~)r7r8r�r9r0r:r;r
)rr=r>r?r~rrrr8,s
z(AssociativeContainerMethodsMatcher.matchN)rrrrr8rrrrr� sr�c@s8eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�ZdS)
�UniquePtrGetWorkerzIImplements std::unique_ptr<T>::get() and std::unique_ptr<T>::operator->()cCs*|jtjk|_|jr |j�|_n||_dS)N)rpr�TYPE_CODE_ARRAY�	_is_array�target�
_elem_type)r�	elem_typerrrr:szUniquePtrGetWorker.__init__cCsdS)Nr)rrrrrAsz UniquePtrGetWorker.get_arg_typescCs
|jj�S)N)r�r)rrrrrrDsz"UniquePtrGetWorker.get_result_typecCs|dkp|jS)z/operator-> is not supported for unique_ptr<T[]>r:)r�)rr>rrr�	_supportsGszUniquePtrGetWorker._supportscCsN|j�jj�djj}tjd|�r2|dddStjd|�rJ|ddSdS)Nrz$^std::(__\d+::)?__uniq_ptr_impl<.*>$rZ_M_head_implz^std::(__\d+::)?tuple<.*>$)rrdrer9r7r8)rrZ	impl_typerrrr KszUniquePtrGetWorker.__call__N)	rrr�__doc__rrrr�r rrrrr�7sr�c@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�UniquePtrDerefWorkerz*Implements std::unique_ptr<T>::operator*()cCstj||�dS)N)r�r)rr�rrrrVszUniquePtrDerefWorker.__init__cCs|jS)N)r�)rrrrrrYsz$UniquePtrDerefWorker.get_result_typecCs|jS)z.operator* is not supported for unique_ptr<T[]>)r�)rr>rrrr�\szUniquePtrDerefWorker._supportscCstj||�j�S)N)r�r r)rrrrrr `szUniquePtrDerefWorker.__call__N)rrrr�rrr�r rrrrr�Ss
r�c@s8eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�ZdS)
�UniquePtrSubscriptWorkerz1Implements std::unique_ptr<T>::operator[](size_t)cCstj||�dS)N)r�r)rr�rrrrfsz!UniquePtrSubscriptWorker.__init__cCst�S)N)r)rrrrrisz&UniquePtrSubscriptWorker.get_arg_typescCs|jS)N)r�)rrr(rrrrlsz(UniquePtrSubscriptWorker.get_result_typecCs|jS)z0operator[] is only supported for unique_ptr<T[]>)r�)rr>rrrr�osz"UniquePtrSubscriptWorker._supportscCstj||�|S)N)r�r )rrr(rrrr ssz!UniquePtrSubscriptWorker.__call__N)	rrrr�rrrr�r rrrrr�csr�c@seZdZdd�Zdd�ZdS)�UniquePtrMethodsMatchercsVtjjj�td�tdt�tdt�tdt�tdt�d��_	�fdd��j	D��_
dS)	NZ
unique_ptrr:z
operator->z	operator*z
operator[])r:z
operator->z	operator*z
operator[]csg|]}�j|�qSr)r0)r1r2)rrrr3�sz4UniquePtrMethodsMatcher.__init__.<locals>.<listcomp>)rr
r4rr5r	r�r�r�r0r6)rr)rrrws

z UniquePtrMethodsMatcher.__init__cCsTtjd|j�sdS|jj|�}|dks.|jr2dS|j|jd��}|j|�rP|SdS)Nz^std::(__\d+::)?unique_ptr<.*>$r)	r7r8r9r0r:r;r
r<r�)rr=r>r?�workerrrrr8�s
zUniquePtrMethodsMatcher.matchN)rrrrr8rrrrr�vsr�c@s8eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�ZdS)
�SharedPtrGetWorkerzIImplements std::shared_ptr<T>::get() and std::shared_ptr<T>::operator->()cCs*|jtjk|_|jr |j�|_n||_dS)N)rprr�r�r�r�)rr�rrrr�szSharedPtrGetWorker.__init__cCsdS)Nr)rrrrr�sz SharedPtrGetWorker.get_arg_typescCs
|jj�S)N)r�r)rrrrrr�sz"SharedPtrGetWorker.get_result_typecCs|dkp|jS)z/operator-> is not supported for shared_ptr<T[]>r:)r�)rr>rrrr��szSharedPtrGetWorker._supportscCs|dS)NZ_M_ptrr)rrrrrr �szSharedPtrGetWorker.__call__N)	rrrr�rrrr�r rrrrr��sr�c@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�SharedPtrDerefWorkerz*Implements std::shared_ptr<T>::operator*()cCstj||�dS)N)r�r)rr�rrrr�szSharedPtrDerefWorker.__init__cCs|jS)N)r�)rrrrrr�sz$SharedPtrDerefWorker.get_result_typecCs|jS)z.operator* is not supported for shared_ptr<T[]>)r�)rr>rrrr��szSharedPtrDerefWorker._supportscCstj||�j�S)N)r�r r)rrrrrr �szSharedPtrDerefWorker.__call__N)rrrr�rrr�r rrrrr��s
r�c@s8eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�ZdS)
�SharedPtrSubscriptWorkerz1Implements std::shared_ptr<T>::operator[](size_t)cCstj||�dS)N)r�r)rr�rrrr�sz!SharedPtrSubscriptWorker.__init__cCst�S)N)r)rrrrr�sz&SharedPtrSubscriptWorker.get_arg_typescCs|jS)N)r�)rrr(rrrr�sz(SharedPtrSubscriptWorker.get_result_typecCs|jS)z0operator[] is only supported for shared_ptr<T[]>)r�)rr>rrrr��sz"SharedPtrSubscriptWorker._supportscCsZtjdt|j��}|rJ|t|jd��krJtd|jt|�t|jd��f��tj||�|S)Nz.*\[(\d+)]$r&z.shared_ptr<%s> index "%d" should not be >= %d.)	r7r8rbr�r"�groupr)r�r )rrr(r2rrrr �s
z!SharedPtrSubscriptWorker.__call__N)	rrrr�rrrr�r rrrrr��sr�c@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�SharedPtrUseCountWorkerz*Implements std::shared_ptr<T>::use_count()cCstj||�dS)N)r�r)rr�rrrr�sz SharedPtrUseCountWorker.__init__cCsdS)Nr)rrrrr�sz%SharedPtrUseCountWorker.get_arg_typescCs
tjd�S)NZlong)rr)rrrrrr�sz'SharedPtrUseCountWorker.get_result_typecCs|dd}|r|dSdS)NZ_M_refcountZ_M_piZ_M_use_countrr)rrZ	refcountsrrrr �sz SharedPtrUseCountWorker.__call__N)rrrr�rrrr rrrrr��s
r�c@s(eZdZdZdd�Zdd�Zdd�ZdS)	�SharedPtrUniqueWorkerz'Implements std::shared_ptr<T>::unique()cCstj||�dS)N)r�r)rr�rrrr�szSharedPtrUniqueWorker.__init__cCs
tjd�S)Nr)rr)rrrrrr�sz%SharedPtrUniqueWorker.get_result_typecCstj||�dkS)Nr&)r�r )rrrrrr �szSharedPtrUniqueWorker.__call__N)rrrr�rrr rrrrr��sr�c@seZdZdd�Zdd�ZdS)�SharedPtrMethodsMatchercsftjjj�td�tdt�tdt�tdt�tdt�tdt	�tdt
�d��_�fd	d
��jD��_dS)NZ
shared_ptrr:z
operator->z	operator*z
operator[]�	use_count�unique)r:z
operator->z	operator*z
operator[]r�r�csg|]}�j|�qSr)r0)r1r2)rrrr3�sz4SharedPtrMethodsMatcher.__init__.<locals>.<listcomp>)
rr
r4rr5r	r�r�r�r�r�r0r6)rr)rrr�s

z SharedPtrMethodsMatcher.__init__cCsTtjd|j�sdS|jj|�}|dks.|jr2dS|j|jd��}|j|�rP|SdS)Nz^std::(__\d+::)?shared_ptr<.*>$r)	r7r8r9r0r:r;r
r<r�)rr=r>r?r�rrrr8�s
zSharedPtrMethodsMatcher.matchN)rrrrr8rrrrr��s
r�cCstjj|t��tjj|t��tjj|t��tjj|t��tjj|t��tjj|td��tjj|td��tjj|td��tjj|td��tjj|td��tjj|td��tjj|td��tjj|td��tjj|t	��tjj|t
��dS)	N�set�mapZmultisetZmultimapZ
unordered_setZ
unordered_mapZunordered_multisetZunordered_multimap)rr
Zregister_xmethod_matcherr+rarUrkr{r�r�r�)Zlocusrrr�register_libstdcxx_xmethodss.r�)<rZgdb.xmethodr7r5rrr
rr	Z
XMethodWorkerrrr!r#r%r'r*r4r+r@rLrMrNrOrRrTrUrWrZr]rarcrgrhrirjrkrmrurvrwrxryrzr{r|r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr�<module>sn	




	








Youez - 2016 - github.com/yon3zu
LinuXploit