관리-도구
편집 파일: xmethods.cpython-39.opt-1.pyc
a �����fo����������������������@���s���d�dl�Z�d�dlZ�d�dlZdZdd��Zdd��ZG�dd��de�jj�ZG�d d ��d e�jj �Z G�dd��de �ZG�d d��de �ZG�dd��de �Z G�dd��de �ZG�dd��de �ZG�dd��de �ZG�dd��de�jj�ZG�dd��de�jj �ZG�dd��de�ZG�dd��de�ZG�dd ��d e�ZG�d!d"��d"e�ZG�d#d$��d$e�ZG�d%d&��d&e�ZG�d'd(��d(e�jj�ZG�d)d*��d*e�jj�ZG�d+d,��d,e�ZG�d-d.��d.e�ZG�d/d0��d0e�jj�ZG�d1d2��d2e�jj �ZG�d3d4��d4e�Z G�d5d6��d6e�Z!G�d7d8��d8e�Z"G�d9d:��d:e�Z#G�d;d<��d<e�jj�Z$G�d=d>��d>e�jj �Z%G�d?d@��d@e%�Z&G�dAdB��dBe%�Z'G�dCdD��dDe%�Z(G�dEdF��dFe%�Z)G�dGdH��dHe%�Z*G�dIdJ��dJe%�Z+G�dKdL��dLe�jj�Z,G�dMdN��dNe�jj �Z-G�dOdP��dPe-�Z.G�dQdR��dRe-�Z/G�dSdT��dTe�jj�Z0G�dUdV��dVe�jj �Z1G�dWdX��dXe1�Z2G�dYdZ��dZe1�Z3G�d[d\��d\e�jj�Z4G�d]d^��d^e�jj �Z5G�d_d`��d`e5�Z6G�dadb��dbe5�Z7G�dcdd��dde�jj �Z8G�dedf��dfe8�Z9G�dgdh��dhe�jj�Z:didj��Z;dS�)k�����Nzlibstdc++::c�������������������C���s ���t��d�S��N�bool��gdb�lookup_type��r���r����1/usr/share/gcc-11/python/libstdcxx/v6/xmethods.py� get_bool_type���s����r ���c�������������������C���s ���t��d�S�)Nzstd::size_tr���r���r���r���r����get_std_size_type���s����r ���c�������������������@���s���e�Zd�Zdd��ZdS�)�LibStdCxxXMethodc�����������������C���s���t�jj�|�|��||�_d�S��N)r����xmethod�XMethod�__init__�worker_class)�self�namer���r���r���r���r������s����zLibStdCxxXMethod.__init__N)�__name__� __module__�__qualname__r���r���r���r���r���r������s���r���c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)�ArrayWorkerBasec�����������������C���s���||�_�||�_d�S�r���)� _val_type�_size�r����val_type�sizer���r���r���r���&���s����zArrayWorkerBase.__init__c�����������������C���s���t��d�}|�|�j�������S�)Nz (void *) 0)r���Zparse_and_eval�castr����pointer�dereference)r���Znullptrr���r���r���� null_value*���s���� zArrayWorkerBase.null_valueN)r���r���r���r���r���r���r���r���r���r���%���s���r���c�������������������@���s,���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd S�) �ArraySizeWorkerc�����������������C���s���t��|�||��d�S�r����r���r���r���r���r���r���r���/���s����zArraySizeWorker.__init__c�����������������C���s���d�S�r���r����r���r���r���r���� get_arg_types2���s����zArraySizeWorker.get_arg_typesc�����������������C���s���t���S�r����r ����r����objr���r���r����get_result_type5���s����zArraySizeWorker.get_result_typec�����������������C���s���|�j�S�r���)r���r%���r���r���r����__call__8���s����zArraySizeWorker.__call__N�r���r���r���r���r#���r'���r(���r���r���r���r���r ���.���s���r ���c�������������������@���s,���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd S�) �ArrayEmptyWorkerc�����������������C���s���t��|�||��d�S�r���r!���r���r���r���r���r���<���s����zArrayEmptyWorker.__init__c�����������������C���s���d�S�r���r���r"���r���r���r���r#���?���s����zArrayEmptyWorker.get_arg_typesc�����������������C���s���t���S�r����r ���r%���r���r���r���r'���B���s����z ArrayEmptyWorker.get_result_typec�����������������C���s���t�|�j�dkS��Nr���)�intr���r%���r���r���r���r(���E���s����zArrayEmptyWorker.__call__Nr)���r���r���r���r���r*���;���s���r*���c�������������������@���s,���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd S�) �ArrayFrontWorkerc�����������������C���s���t��|�||��d�S�r���r!���r���r���r���r���r���I���s����zArrayFrontWorker.__init__c�����������������C���s���d�S�r���r���r"���r���r���r���r#���L���s����zArrayFrontWorker.get_arg_typesc�����������������C���s���|�j�S�r����r���r%���r���r���r���r'���O���s����z ArrayFrontWorker.get_result_typec�����������������C���s&���t�|�j�dkr|d�d�S�|����S�d�S��Nr����_M_elems�r-���r���r���r%���r���r���r���r(���R���s����zArrayFrontWorker.__call__Nr)���r���r���r���r���r.���H���s���r.���c�������������������@���s,���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd S�) �ArrayBackWorkerc�����������������C���s���t��|�||��d�S�r���r!���r���r���r���r���r���Y���s����zArrayBackWorker.__init__c�����������������C���s���d�S�r���r���r"���r���r���r���r#���\���s����zArrayBackWorker.get_arg_typesc�����������������C���s���|�j�S�r���r/���r%���r���r���r���r'���_���s����zArrayBackWorker.get_result_typec�����������������C���s,���t�|�j�dkr |d�|�jd��S�|����S�d�S�)Nr���r1�������r2���r%���r���r���r���r(���b���s����zArrayBackWorker.__call__Nr)���r���r���r���r���r3���X���s���r3���c�������������������@���s,���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd S�) � ArrayAtWorkerc�����������������C���s���t��|�||��d�S�r���r!���r���r���r���r���r���i���s����zArrayAtWorker.__init__c�����������������C���s���t���S�r���r$���r"���r���r���r���r#���l���s����zArrayAtWorker.get_arg_typesc�����������������C���s���|�j�S�r���r/����r���r&����indexr���r���r���r'���o���s����zArrayAtWorker.get_result_typec�����������������C���s4���t�|�t�|�j�kr(tdt�|�|�jf���|d�|�S�)Nz%Array index "%d" should not be >= %d.r1���)r-���r���� IndexErrorr6���r���r���r���r(���r���s �����zArrayAtWorker.__call__Nr)���r���r���r���r���r5���h���s���r5���c�������������������@���s,���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd S�) �ArraySubscriptWorkerc�����������������C���s���t��|�||��d�S�r���r!���r���r���r���r���r���y���s����zArraySubscriptWorker.__init__c�����������������C���s���t���S�r���r$���r"���r���r���r���r#���|���s����z"ArraySubscriptWorker.get_arg_typesc�����������������C���s���|�j�S�r���r/���r6���r���r���r���r'������s����z$ArraySubscriptWorker.get_result_typec�����������������C���s&���t�|�j�dkr|d�|�S�|����S�d�S�r0���r2���r6���r���r���r���r(�������s����zArraySubscriptWorker.__call__Nr)���r���r���r���r���r9���x���s���r9���c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)�ArrayMethodsMatcherc��������������������sf���t�jj���td���tdt�tdt�tdt�tdt �tdt �tdt�d���_��fd d ���jD����_ d�S�)NZarrayr����empty�front�back�at� operator[]�r���r;���r<���r=���r>���r?���c��������������������s���g�|�]}��j�|��qS�r�����_method_dict��.0�mr"���r���r���� <listcomp>���������z0ArrayMethodsMatcher.__init__.<locals>.<listcomp>)r���r ����XMethodMatcherr����matcher_name_prefixr���r ���r*���r.���r3���r5���r9���rB����methodsr"���r���r"���r���r�������s���� ��zArrayMethodsMatcher.__init__c�����������������C���sd���t��d|j�sd�S�|�j�|�}|d�u�s,|js0d�S�z|�d�}|�d�}W�n���Y�d�S�0�|�||�S�)Nz^std::(__\d+::)?array<.*>$r���r4���)�re�match�tagrB����get�enabled�template_argumentr���)r���� class_type�method_name�methodZ value_typer���r���r���r���rL�������s���� zArrayMethodsMatcher.matchN�r���r���r���r���rL���r���r���r���r���r:�������s��� r:���c�������������������@���s$���e�Zd�Zdd��Zdd��Zdd��ZdS�)�DequeWorkerBasec�����������������C���s���||�_�d|j�pd|�_d�S�)Ni���r4���)r����sizeof�_bufsize�r���r���r���r���r���r�������s����zDequeWorkerBase.__init__c�����������������C���sf���|d�d�}|d�d�}|d�|d�kr,dS�|�j�|d�|d��d��|d�|d���|d �|d���S�) N�_M_impl�_M_start� _M_finish�_M_curr����_M_noder4����_M_first�_M_last�rW���)r���r&����start�finishr���r���r���r�������s�������zDequeWorkerBase.sizec�����������������C���s`���|d�d�}|d�|d��}||k�r0|d�|�S�||�}|d�dt�|�|�j���}|||�j��S�)NrY���rZ���r_���r\���r]���r4���)r-���rW���)r���r&����idxra���Zfirst_node_sizeZ index_noder���r���r���r7�������s����zDequeWorkerBase.indexN)r���r���r���r���r���r7���r���r���r���r���rU�������s��� rU���c�������������������@���s$���e�Zd�Zdd��Zdd��Zdd��ZdS�)�DequeEmptyWorkerc�����������������C���s���d�S�r���r���r"���r���r���r���r#�������s����zDequeEmptyWorker.get_arg_typesc�����������������C���s���t���S�r���r+���r%���r���r���r���r'�������s����z DequeEmptyWorker.get_result_typec�����������������C���s ���|d�d�d�|d�d�d�kS�)NrY���rZ���r\���r[���r���r%���r���r���r���r(�������s�����zDequeEmptyWorker.__call__N�r���r���r���r#���r'���r(���r���r���r���r���rd�������s���rd���c�������������������@���s$���e�Zd�Zdd��Zdd��Zdd��ZdS�)�DequeSizeWorkerc�����������������C���s���d�S�r���r���r"���r���r���r���r#�������s����zDequeSizeWorker.get_arg_typesc�����������������C���s���t���S�r���r$���r%���r���r���r���r'�������s����zDequeSizeWorker.get_result_typec�����������������C���s ���|���|�S�r����r���r%���r���r���r���r(�������s����zDequeSizeWorker.__call__Nre���r���r���r���r���rf�������s���rf���c�������������������@���s$���e�Zd�Zdd��Zdd��Zdd��ZdS�)�DequeFrontWorkerc�����������������C���s���d�S�r���r���r"���r���r���r���r#�������s����zDequeFrontWorker.get_arg_typesc�����������������C���s���|�j�S�r���r/���r%���r���r���r���r'�������s����z DequeFrontWorker.get_result_typec�����������������C���s���|d�d�d�d�S�)NrY���rZ���r\���r���r���r%���r���r���r���r(�������s����zDequeFrontWorker.__call__Nre���r���r���r���r���rh�������s���rh���c�������������������@���s$���e�Zd�Zdd��Zdd��Zdd��ZdS�)�DequeBackWorkerc�����������������C���s���d�S�r���r���r"���r���r���r���r#�������s����zDequeBackWorker.get_arg_typesc�����������������C���s���|�j�S�r���r/���r%���r���r���r���r'�������s����zDequeBackWorker.get_result_typec�����������������C���s^���|d�d�d�|d�d�d�krF|d�d�d�d�}|d�|�j�d��S�|d�d�d�d�S�d�S�) NrY���r[���r\���r^���r]���r4���r������r`����r���r&���Z prev_noder���r���r���r(�������s�����zDequeBackWorker.__call__Nre���r���r���r���r���ri�������s���ri���c�������������������@���s$���e�Zd�Zdd��Zdd��Zdd��ZdS�)�DequeSubscriptWorkerc�����������������C���s���t���S�r���r$���r"���r���r���r���r#�������s����z"DequeSubscriptWorker.get_arg_typesc�����������������C���s���|�j�S�r���r/����r���r&���Z subscriptr���r���r���r'�������s����z$DequeSubscriptWorker.get_result_typec�����������������C���s���|���||�S�r���)r7���rm���r���r���r���r(�������s����zDequeSubscriptWorker.__call__Nre���r���r���r���r���rl�������s���rl���c�������������������@���s$���e�Zd�Zdd��Zdd��Zdd��ZdS�)� DequeAtWorkerc�����������������C���s���t���S�r���r$���r"���r���r���r���r#�������s����zDequeAtWorker.get_arg_typesc�����������������C���s���|�j�S�r���r/���r6���r���r���r���r'�������s����zDequeAtWorker.get_result_typec�����������������C���s@���t�|��|��}t�|�|kr0tdt�|�|f���n|��||�S�d�S�)Nz%Deque index "%d" should not be >= %d.)r-���r���r8���r7���)r���r&���r7���Z deque_sizer���r���r���r(�������s���� �zDequeAtWorker.__call__Nre���r���r���r���r���rn�������s���rn���c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)�DequeMethodsMatcherc��������������������sf���t�jj���td���tdt�tdt�tdt�tdt �tdt �tdt�d���_��fd d ���jD����_ d�S�)N�dequer;���r���r<���r=���r?���r>���)r;���r���r<���r=���r?���r>���c��������������������s���g�|�]}��j�|��qS�r���rA���rC���r"���r���r���rF�����rG���z0DequeMethodsMatcher.__init__.<locals>.<listcomp>)r���r ���rH���r���rI���r���rd���rf���rh���ri���rl���rn���rB���rJ���r"���r���r"���r���r�����s���� ��zDequeMethodsMatcher.__init__c�����������������C���s@���t��d|j�sd�S�|�j�|�}|d�u�s,|js0d�S�|�|�d��S�)Nz^std::(__\d+::)?deque<.*>$r����rK���rL���rM���rB���rN���rO���r���rP����r���rQ���rR���rS���r���r���r���rL�����s����zDequeMethodsMatcher.matchNrT���r���r���r���r���ro�����s��� ro���c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)�ForwardListWorkerBasec�����������������C���s���||�_�||�_d�S�r����r���� _node_type�r���r���� node_typer���r���r���r�����s����zForwardListWorkerBase.__init__c�����������������C���s���d�S�r���r���r"���r���r���r���r#���!��s����z#ForwardListWorkerBase.get_arg_typesN)r���r���r���r���r#���r���r���r���r���rs�����s���rs���c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)�ForwardListEmptyWorkerc�����������������C���s���t���S�r���r+���r%���r���r���r���r'���%��s����z&ForwardListEmptyWorker.get_result_typec�����������������C���s���|d�d�d�dkS�)NrY����_M_head�_M_nextr���r���r%���r���r���r���r(���(��s����zForwardListEmptyWorker.__call__N�r���r���r���r'���r(���r���r���r���r���rx���$��s���rx���c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)�ForwardListFrontWorkerc�����������������C���s���|�j�S�r���r/���r%���r���r���r���r'���,��s����z&ForwardListFrontWorker.get_result_typec�����������������C���s:���|d�d�d���|�j�}|d�d�j}|��|�j�������S�)NrY���ry���rz���� _M_storage)r���ru����addressr���r���r���)r���r&����nodeZval_addressr���r���r���r(���/��s����zForwardListFrontWorker.__call__Nr{���r���r���r���r���r|���+��s���r|���c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)�ForwardListMethodsMatcherc��������������������sJ���t�d�}tjj���|��tdt�tdt�d���_��fdd���jD����_ d�S�)NZforward_listr;���r<���)r;���r<���c��������������������s���g�|�]}��j�|��qS�r���rA���rC���r"���r���r���rF���<��rG���z6ForwardListMethodsMatcher.__init__.<locals>.<listcomp>) rI���r���r ���rH���r���r���rx���r|���rB���rJ���)r���Zmatcher_namer���r"���r���r���5��s�����z"ForwardListMethodsMatcher.__init__c�����������������C���s\���t��d|j�sd�S�|�j�|�}|d�u�s,|js0d�S�|�d�}t�t |�d��� ��}|�||�S�)Nz!^std::(__\d+::)?forward_list<.*>$r����::_Node�rK���rL���rM���rB���rN���rO���rP���r���r����strr���r����r���rQ���rR���rS���r���rw���r���r���r���rL���>��s���� zForwardListMethodsMatcher.matchNrT���r���r���r���r���r����4��s��� r����c�������������������@���s$���e�Zd�Zdd��Zdd��Zdd��ZdS�)�ListWorkerBasec�����������������C���s���||�_�||�_d�S�r���rt���rv���r���r���r���r���K��s����zListWorkerBase.__init__c�����������������C���s���d�S�r���r���r"���r���r���r���r#���O��s����zListWorkerBase.get_arg_typesc�����������������C���sB���|����}|j���d�jdkr$|d�S�|d�j}|�|�j��������S�)Nr4���Z_M_datar}���)r����type�fieldsr���r~���r���r���r���)r���r���Zaddrr���r���r����get_value_from_nodeR��s ���� z"ListWorkerBase.get_value_from_nodeN)r���r���r���r���r#���r����r���r���r���r���r����J��s���r����c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)�ListEmptyWorkerc�����������������C���s���t���S�r���r+���r%���r���r���r���r'���\��s����zListEmptyWorker.get_result_typec�����������������C���s&���|d�d�}|d�|j�krdS�dS�d�S�)NrY���r]���rz���TF�r~���)r���r&���Z base_noder���r���r���r(���_��s����zListEmptyWorker.__call__Nr{���r���r���r���r���r����[��s���r����c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)�ListSizeWorkerc�����������������C���s���t���S�r���r$���r%���r���r���r���r'���g��s����zListSizeWorker.get_result_typec�����������������C���s@���|d�d�d�}|d�d�j�}d}||kr<|d�}|d7�}q"|S�)NrY���r]���rz���r���r4���r����)r���r&���Z begin_nodeZend_noder���r���r���r���r(���j��s���� zListSizeWorker.__call__Nr{���r���r���r���r���r����f��s���r����c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)�ListFrontWorkerc�����������������C���s���|�j�S�r���r/���r%���r���r���r���r'���t��s����zListFrontWorker.get_result_typec�����������������C���s"���|d�d�d���|�j�}|��|�S�)NrY���r]���rz����r���ru���r����)r���r&���r���r���r���r���r(���w��s����zListFrontWorker.__call__Nr{���r���r���r���r���r����s��s���r����c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)�ListBackWorkerc�����������������C���s���|�j�S�r���r/���r%���r���r���r���r'���|��s����zListBackWorker.get_result_typec�����������������C���s"���|d�d�d���|�j�}|��|�S�)NrY���r]���Z_M_prevr����rk���r���r���r���r(�����s����zListBackWorker.__call__Nr{���r���r���r���r���r����{��s���r����c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)�ListMethodsMatcherc��������������������sV���t�jj���td���tdt�tdt�tdt�tdt �d���_ ��fdd���j D����_d�S�) N�listr;���r���r<���r=���)r;���r���r<���r=���c��������������������s���g�|�]}��j�|��qS�r���rA���rC���r"���r���r���rF������rG���z/ListMethodsMatcher.__init__.<locals>.<listcomp>)r���r ���rH���r���rI���r���r����r����r����r����rB���rJ���r"���r���r"���r���r������s���� ��zListMethodsMatcher.__init__c�����������������C���s\���t��d|j�sd�S�|�j�|�}|d�u�s,|js0d�S�|�d�}t�t |�d��� ��}|�||�S�)Nz%^std::(__\d+::)?(__cxx11::)?list<.*>$r���r����r����r����r���r���r���rL������s���� zListMethodsMatcher.matchNrT���r���r���r���r���r�������s���r����c�������������������@���s$���e�Zd�Zdd��Zdd��Zdd��ZdS�)�VectorWorkerBasec�����������������C���s ���||�_�d�S�r���r/���rX���r���r���r���r������s����zVectorWorkerBase.__init__c�����������������C���sz���|�j�jtjkr^|d�d�d�}|d�d�d�}|d�d�d�}|���jjd�}||�|�|�S�|d�d�|d�d��S�d�S�)NrY���rZ����_M_pr[���Z _M_offset�����r����coder���ZTYPE_CODE_BOOLr���r����rV���)r���r&���ra���rb���Z finish_offset�bit_sizer���r���r���r������s����zVectorWorkerBase.sizec�����������������C���sj���|�j�jtjkrV|d�d�d�}|���jjd�}|||��}||�}|���d|>�@�dkS�|d�d�|�S�d�S�)NrY���rZ���r����r����r4���r���r����)r���r&���r7���ra���r����Zvalp�offsetr���r���r���rN������s����zVectorWorkerBase.getN)r���r���r���r���r���rN���r���r���r���r���r�������s��� r����c�������������������@���s$���e�Zd�Zdd��Zdd��Zdd��ZdS�)�VectorEmptyWorkerc�����������������C���s���d�S�r���r���r"���r���r���r���r#������s����zVectorEmptyWorker.get_arg_typesc�����������������C���s���t���S�r���r+���r%���r���r���r���r'������s����z!VectorEmptyWorker.get_result_typec�����������������C���s���t�|��|��dkS�r,���)r-���r���r%���r���r���r���r(������s����zVectorEmptyWorker.__call__Nre���r���r���r���r���r�������s���r����c�������������������@���s$���e�Zd�Zdd��Zdd��Zdd��ZdS�)�VectorSizeWorkerc�����������������C���s���d�S�r���r���r"���r���r���r���r#������s����zVectorSizeWorker.get_arg_typesc�����������������C���s���t���S�r���r$���r%���r���r���r���r'������s����z VectorSizeWorker.get_result_typec�����������������C���s ���|���|�S�r���rg���r%���r���r���r���r(������s����zVectorSizeWorker.__call__Nre���r���r���r���r���r�������s���r����c�������������������@���s$���e�Zd�Zdd��Zdd��Zdd��ZdS�)�VectorFrontWorkerc�����������������C���s���d�S�r���r���r"���r���r���r���r#������s����zVectorFrontWorker.get_arg_typesc�����������������C���s���|�j�S�r���r/���r%���r���r���r���r'������s����z!VectorFrontWorker.get_result_typec�����������������C���s���|���|d�S�r,���)rN���r%���r���r���r���r(������s����zVectorFrontWorker.__call__Nre���r���r���r���r���r�������s���r����c�������������������@���s$���e�Zd�Zdd��Zdd��Zdd��ZdS�)�VectorBackWorkerc�����������������C���s���d�S�r���r���r"���r���r���r���r#������s����zVectorBackWorker.get_arg_typesc�����������������C���s���|�j�S�r���r/���r%���r���r���r���r'������s����z VectorBackWorker.get_result_typec�����������������C���s���|���|t|��|��d��S��Nr4���)rN���r-���r���r%���r���r���r���r(������s����zVectorBackWorker.__call__Nre���r���r���r���r���r�������s���r����c�������������������@���s$���e�Zd�Zdd��Zdd��Zdd��ZdS�)�VectorAtWorkerc�����������������C���s���t���S�r���r$���r"���r���r���r���r#������s����zVectorAtWorker.get_arg_typesc�����������������C���s���|�j�S�r���r/���r6���r���r���r���r'������s����zVectorAtWorker.get_result_typec�����������������C���s>���t�|��|��}t�|�|kr.tdt�|�|f���|��|t�|��S�)Nz&Vector index "%d" should not be >= %d.)r-���r���r8���rN���)r���r&���r7���r���r���r���r���r(������s���� �zVectorAtWorker.__call__Nre���r���r���r���r���r�������s���r����c�������������������@���s$���e�Zd�Zdd��Zdd��Zdd��ZdS�)�VectorSubscriptWorkerc�����������������C���s���t���S�r���r$���r"���r���r���r���r#������s����z#VectorSubscriptWorker.get_arg_typesc�����������������C���s���|�j�S�r���r/���rm���r���r���r���r'������s����z%VectorSubscriptWorker.get_result_typec�����������������C���s���|���|t|��S�r���)rN���r-���rm���r���r���r���r(������s����zVectorSubscriptWorker.__call__Nre���r���r���r���r���r�������s���r����c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)�VectorMethodsMatcherc��������������������sf���t�jj���td���tdt�tdt�tdt�tdt �tdt �tdt�d���_��fd d ���jD����_ d�S�)NZvectorr���r;���r<���r=���r>���r?���r@���c��������������������s���g�|�]}��j�|��qS�r���rA���rC���r"���r���r���rF������rG���z1VectorMethodsMatcher.__init__.<locals>.<listcomp>)r���r ���rH���r���rI���r���r����r����r����r����r����r����rB���rJ���r"���r���r"���r���r������s���� ��� zVectorMethodsMatcher.__init__c�����������������C���s@���t��d|j�sd�S�|�j�|�}|d�u�s,|js0d�S�|�|�d��S�)Nz^std::(__\d+::)?vector<.*>$r���rq���rr���r���r���r���rL�����s����zVectorMethodsMatcher.matchNrT���r���r���r���r���r�������s���r����c�������������������@���s$���e�Zd�Zdd��Zdd��Zdd��ZdS�)�AssociativeContainerWorkerBasec�����������������C���s ���||�_�d�S�r����Z _unordered)r���� unorderedr���r���r���r��� ��s����z'AssociativeContainerWorkerBase.__init__c�����������������C���s&���|�j�r|d�d�S�|d�d�d�S�d�S�)NZ_M_hZ_M_element_count�_M_trY���Z _M_node_countr����r%���r���r���r���� node_count��s����z)AssociativeContainerWorkerBase.node_countc�����������������C���s���d�S�r���r���r"���r���r���r���r#�����s����z,AssociativeContainerWorkerBase.get_arg_typesN)r���r���r���r���r����r#���r���r���r���r���r������s���r����c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)�AssociativeContainerEmptyWorkerc�����������������C���s���t���S�r���r+���r%���r���r���r���r'�����s����z/AssociativeContainerEmptyWorker.get_result_typec�����������������C���s���t�|��|��dkS�r,���)r-���r����r%���r���r���r���r(�����s����z(AssociativeContainerEmptyWorker.__call__Nr{���r���r���r���r���r������s���r����c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)�AssociativeContainerSizeWorkerc�����������������C���s���t���S�r���r$���r%���r���r���r���r'���!��s����z.AssociativeContainerSizeWorker.get_result_typec�����������������C���s ���|���|�S�r���)r����r%���r���r���r���r(���$��s����z'AssociativeContainerSizeWorker.__call__Nr{���r���r���r���r���r���� ��s���r����c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)�"AssociativeContainerMethodsMatcherc��������������������sL���t�jj���t|���|��_tdt�tdt�d���_ ��fdd���j D����_ d�S�)Nr���r;���)r���r;���c��������������������s���g�|�]}��j�|��qS�r���rA���rC���r"���r���r���rF���1��rG���z?AssociativeContainerMethodsMatcher.__init__.<locals>.<listcomp>)r���r ���rH���r���rI����_namer���r����r����rB���rJ���)r���r���r���r"���r���r���(��s���� ���z+AssociativeContainerMethodsMatcher.__init__c�����������������C���sJ���t��d|�j�|j�sd�S�|�j�|�}|d�u�s2|js6d�S�d|�jv�}|�|�S�)Nz^std::(__\d+::)?%s<.*>$r����)rK���rL���r����rM���rB���rN���rO���r���)r���rQ���rR���rS���r����r���r���r���rL���3��s���� z(AssociativeContainerMethodsMatcher.matchNrT���r���r���r���r���r����'��s���r����c�������������������@���s8���e�Zd�ZdZdd��Zdd��Zdd��Zdd ��Zd d��ZdS�) �UniquePtrGetWorkerzIImplements std::unique_ptr<T>::get() and std::unique_ptr<T>::operator->()c�����������������C���s*���|j�tjk|�_|�jr |���|�_n||�_d�S�r����r����r���ZTYPE_CODE_ARRAY� _is_array�target� _elem_type�r���Z elem_typer���r���r���r���A��s����zUniquePtrGetWorker.__init__c�����������������C���s���d�S�r���r���r"���r���r���r���r#���H��s����z UniquePtrGetWorker.get_arg_typesc�����������������C���s ���|�j����S�r����r����r���r%���r���r���r���r'���K��s����z"UniquePtrGetWorker.get_result_typec�����������������C���s���|dkp|�j��S�)z/operator-> is not supported for unique_ptr<T[]>rN����r�����r���rR���r���r���r���� _supportsN��s����zUniquePtrGetWorker._supportsc�����������������C���s����|����j���d�jj}t�d|�r0|d�d�}nt�d|�rF|d�}nd�S�|j���d�j}|���d�j}|���d�}|jdkr�|�|�d�S�|jr�|�|j�S�d�S�d�S�)Nr���z+^std::(__\d+::)?__uniq_ptr_(data|impl)<.*>$r����z^std::(__\d+::)?tuple<.*>$r4���Z_M_head_impl) r���r����r����rM���rK���rL���r���r���Z is_base_class)r���r&���Z impl_typeZtuple_memberZtuple_impl_typeZtuple_head_typeZ head_fieldr���r���r���r(���R��s���� zUniquePtrGetWorker.__call__N� r���r���r����__doc__r���r#���r'���r����r(���r���r���r���r���r����>��s���r����c�������������������@���s0���e�Zd�ZdZdd��Zdd��Zdd��Zdd ��Zd S�)�UniquePtrDerefWorkerz*Implements std::unique_ptr<T>::operator*()c�����������������C���s���t��|�|��d�S�r����r����r���r����r���r���r���r���h��s����zUniquePtrDerefWorker.__init__c�����������������C���s���|�j�S�r����r����r%���r���r���r���r'���k��s����z$UniquePtrDerefWorker.get_result_typec�����������������C���s���|�j��S�)z.operator* is not supported for unique_ptr<T[]>r����r����r���r���r���r����n��s����zUniquePtrDerefWorker._supportsc�����������������C���s���t��|�|����S�r���)r����r(���r���r%���r���r���r���r(���r��s����zUniquePtrDerefWorker.__call__N�r���r���r���r����r���r'���r����r(���r���r���r���r���r����e��s ���r����c�������������������@���s8���e�Zd�ZdZdd��Zdd��Zdd��Zdd ��Zd d��ZdS�) �UniquePtrSubscriptWorkerz1Implements std::unique_ptr<T>::operator[](size_t)c�����������������C���s���t��|�|��d�S�r���r����r����r���r���r���r���x��s����z!UniquePtrSubscriptWorker.__init__c�����������������C���s���t���S�r���r$���r"���r���r���r���r#���{��s����z&UniquePtrSubscriptWorker.get_arg_typesc�����������������C���s���|�j�S�r���r����r6���r���r���r���r'���~��s����z(UniquePtrSubscriptWorker.get_result_typec�����������������C���s���|�j�S�)z0operator[] is only supported for unique_ptr<T[]>r����r����r���r���r���r�������s����z"UniquePtrSubscriptWorker._supportsc�����������������C���s���t��|�|�|�S�r���)r����r(���r6���r���r���r���r(������s����z!UniquePtrSubscriptWorker.__call__Nr����r���r���r���r���r����u��s���r����c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)�UniquePtrMethodsMatcherc��������������������sV���t�jj���td���tdt�tdt�tdt�tdt�d���_ ��fdd���j D����_ d�S�) NZ unique_ptrrN���� operator->� operator*r?���)rN���r����r����r?���c��������������������s���g�|�]}��j�|��qS�r���rA���rC���r"���r���r���rF������rG���z4UniquePtrMethodsMatcher.__init__.<locals>.<listcomp>)r���r ���rH���r���rI���r���r����r����r����rB���rJ���r"���r���r"���r���r������s���� ��z UniquePtrMethodsMatcher.__init__c�����������������C���sR���t��d|j�sd�S�|�j�|�}|d�u�s,|js0d�S�|�|�d��}|�|�rN|S�d�S�)Nz^std::(__\d+::)?unique_ptr<.*>$r���� rK���rL���rM���rB���rN���rO���r���rP���r�����r���rQ���rR���rS���Zworkerr���r���r���rL������s���� zUniquePtrMethodsMatcher.matchNrT���r���r���r���r���r�������s���r����c�������������������@���s8���e�Zd�ZdZdd��Zdd��Zdd��Zdd ��Zd d��ZdS�) �SharedPtrGetWorkerzIImplements std::shared_ptr<T>::get() and std::shared_ptr<T>::operator->()c�����������������C���s*���|j�tjk|�_|�jr |���|�_n||�_d�S�r���r����r����r���r���r���r������s����zSharedPtrGetWorker.__init__c�����������������C���s���d�S�r���r���r"���r���r���r���r#������s����z SharedPtrGetWorker.get_arg_typesc�����������������C���s ���|�j����S�r���r����r%���r���r���r���r'������s����z"SharedPtrGetWorker.get_result_typec�����������������C���s���|dkp|�j��S�)z/operator-> is not supported for shared_ptr<T[]>rN���r����r����r���r���r���r�������s����zSharedPtrGetWorker._supportsc�����������������C���s���|d�S�)NZ_M_ptrr���r%���r���r���r���r(������s����zSharedPtrGetWorker.__call__Nr����r���r���r���r���r�������s���r����c�������������������@���s0���e�Zd�ZdZdd��Zdd��Zdd��Zdd ��Zd S�)�SharedPtrDerefWorkerz*Implements std::shared_ptr<T>::operator*()c�����������������C���s���t��|�|��d�S�r����r����r���r����r���r���r���r������s����zSharedPtrDerefWorker.__init__c�����������������C���s���|�j�S�r���r����r%���r���r���r���r'������s����z$SharedPtrDerefWorker.get_result_typec�����������������C���s���|�j��S�)z.operator* is not supported for shared_ptr<T[]>r����r����r���r���r���r�������s����zSharedPtrDerefWorker._supportsc�����������������C���s���t��|�|����S�r���)r����r(���r���r%���r���r���r���r(������s����zSharedPtrDerefWorker.__call__Nr����r���r���r���r���r�������s ���r����c�������������������@���s8���e�Zd�ZdZdd��Zdd��Zdd��Zdd ��Zd d��ZdS�) �SharedPtrSubscriptWorkerz1Implements std::shared_ptr<T>::operator[](size_t)c�����������������C���s���t��|�|��d�S�r���r����r����r���r���r���r������s����z!SharedPtrSubscriptWorker.__init__c�����������������C���s���t���S�r���r$���r"���r���r���r���r#������s����z&SharedPtrSubscriptWorker.get_arg_typesc�����������������C���s���|�j�S�r���r����r6���r���r���r���r'������s����z(SharedPtrSubscriptWorker.get_result_typec�����������������C���s���|�j�S�)z0operator[] is only supported for shared_ptr<T[]>r����r����r���r���r���r�������s����z"SharedPtrSubscriptWorker._supportsc�����������������C���sZ���t��dt|�j��}|rJ|t|�d��krJtd|�jt|�t|�d��f���t�|�|�|�S�)Nz.*\[(\d+)]$r4���z.shared_ptr<%s> index "%d" should not be >= %d.) rK���rL���r����r����r-����groupr8���r����r(���)r���r&���r7���rE���r���r���r���r(������s�����z!SharedPtrSubscriptWorker.__call__Nr����r���r���r���r���r�������s���r����c�������������������@���s8���e�Zd�ZdZdd��Zdd��Zdd��Zdd ��Zd d��ZdS�) �SharedPtrUseCountWorkerz*Implements std::shared_ptr<T>::use_count()c�����������������C���s���d�S�r���r���r����r���r���r���r������s����z SharedPtrUseCountWorker.__init__c�����������������C���s���d�S�r���r���r"���r���r���r���r#������s����z%SharedPtrUseCountWorker.get_arg_typesc�����������������C���s ���t��d�S�)NZlongr���r%���r���r���r���r'������s����z'SharedPtrUseCountWorker.get_result_typec�����������������C���s���dS�)NTr���r����r���r���r���r�������s����z!SharedPtrUseCountWorker._supportsc�����������������C���s���|d�d�}|r|d�S�dS�)NZ_M_refcountZ_M_piZ_M_use_countr���r���)r���r&���Z refcountsr���r���r���r(������s����z SharedPtrUseCountWorker.__call__Nr����r���r���r���r���r�������s���r����c�������������������@���s(���e�Zd�ZdZdd��Zdd��Zdd��ZdS�) �SharedPtrUniqueWorkerz'Implements std::shared_ptr<T>::unique()c�����������������C���s���t��|�|��d�S�r���)r����r���r����r���r���r���r������s����zSharedPtrUniqueWorker.__init__c�����������������C���s ���t��d�S�r���r���r%���r���r���r���r'������s����z%SharedPtrUniqueWorker.get_result_typec�����������������C���s���t��|�|�dkS�r����)r����r(���r%���r���r���r���r(������s����zSharedPtrUniqueWorker.__call__N)r���r���r���r����r���r'���r(���r���r���r���r���r�������s���r����c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)�SharedPtrMethodsMatcherc��������������������sf���t�jj���td���tdt�tdt�tdt�tdt�tdt �tdt �d���_��fd d ���jD����_d�S�)NZ shared_ptrrN���r����r����r?���� use_count�unique)rN���r����r����r?���r����r����c��������������������s���g�|�]}��j�|��qS�r���rA���rC���r"���r���r���rF�����rG���z4SharedPtrMethodsMatcher.__init__.<locals>.<listcomp>) r���r ���rH���r���rI���r���r����r����r����r����r����rB���rJ���r"���r���r"���r���r������s���� ��z SharedPtrMethodsMatcher.__init__c�����������������C���sR���t��d|j�sd�S�|�j�|�}|d�u�s,|js0d�S�|�|�d��}|�|�rN|S�d�S�)Nz^std::(__\d+::)?shared_ptr<.*>$r���r����r����r���r���r���rL��� ��s���� zSharedPtrMethodsMatcher.matchNrT���r���r���r���r���r�������s��� r����c�����������������C���s��t�j�|�t����t�j�|�t����t�j�|�t����t�j�|�t����t�j�|�t����t�j�|�td���t�j�|�td���t�j�|�td���t�j�|�td���t�j�|�td���t�j�|�td���t�j�|�td���t�j�|�td���t�j�|�t ����t�j�|�t ����d�S�) N�set�mapZmultisetZmultimapZ unordered_setZ unordered_mapZunordered_multisetZunordered_multimap)r���r ���Zregister_xmethod_matcherr:���r����ro���r����r����r����r����r����)Zlocusr���r���r����register_libstdcxx_xmethods��s>������������r����)<r���Zgdb.xmethodrK���rI���r ���r ���r ���r���r���Z XMethodWorkerr���r ���r*���r.���r3���r5���r9���rH���r:���rU���rd���rf���rh���ri���rl���rn���ro���rs���rx���r|���r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r���r���r���r����<module>���sn��� '