Your IP : 216.73.216.241
U
e5d8}�@s�ddlZddlZddlZddlmZmZmZdddgZeeBeBZGdd�de �Z
Gdd�d�Zdd �ZGd
d�d�Z
dd�Zd
d�ZGdd�de�Zdd�Zdd�Zdd�ZdS)�N)�CO_GENERATOR�CO_COROUTINE�CO_ASYNC_GENERATOR�BdbQuit�Bdb�
Breakpointc@seZdZdS)rN)�__name__�
__module__�__qualname__�rr�/usr/lib64/python3.8/bdb.pyr
sc@sreZdZdZdd�Zdd�Zdd�Zdd �Zd
d�Zdd
�Zdd�Z dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd[d%d&�Zd\d'd(�Zd)d*�Zd+d,�Zd-d.�Zd]d/d0�Zd1d2�Zd3d4�Zd^d6d7�Zd8d9�Zd:d;�Zd<d=�Zd>d?�Z d@dA�Z!dBdC�Z"dDdE�Z#dFdG�Z$dHdI�Z%dJdK�Z&dLdM�Z'd_dOdP�Z(d`dQdR�Z)dadSdT�Z*dUdV�Z+dWdX�Z,dYe,_-dS)brNcCs(|rt|�nd|_i|_i|_d|_dS�N)�set�skip�breaks�fncache�frame_returning)�selfrrrr�__init__szBdb.__init__cCsR|d|dd�dkr|S|j�|�}|sNtj�|�}tj�|�}||j|<|S)N�<�����>)r�get�os�path�abspath�normcase)r�filename�canonicrrrr%s
zBdb.canoniccCs&ddl}|��d|_|�dd�dS)Nr)� linecache�
checkcache�botframe�
_set_stopinfo)rr rrr�reset6sz Bdb.resetcCs�|jr
dS|dkr|�|�S|dkr0|�||�S|dkrD|�||�S|dkrX|�||�S|dkrf|jS|dkrt|jS|dkr�|jStdt|��|jS) N�lineZcall�returnZ exceptionZc_callZc_exceptionZc_returnz*bdb.Bdb.dispatch: unknown debugging event:)�quitting�
dispatch_line�
dispatch_call�dispatch_return�dispatch_exception�trace_dispatch�print�repr)r�frameZevent�argrrrr,=s$
zBdb.trace_dispatchcCs.|�|�s|�|�r(|�|�|jr(t�|jSr
)� stop_here�
break_here� user_liner'rr,�rr/rrrr(hs
zBdb.dispatch_linecCsd|jdkr|j|_|jS|�|�s0|�|�s0dS|jrH|jjt@rH|jS|� ||�|j
r^t�|jSr
)r"�f_backr,r1�break_anywhere� stopframe�f_code�co_flags�GENERATOR_AND_COROUTINE_FLAGS� user_callr'r�rr/r0rrrr)ts
zBdb.dispatch_callcCs||�|�s||jkrv|jr,|jjt@r,|jSz||_|�||�W5d|_X|j rVt
�|j|krv|jdkrv|�dd�|jS�Nr)
r1�returnframer7r8r9r:r,r�user_returnr'r�
stoplinenor#r<rrrr*�szBdb.dispatch_returncCs�|�|�rF|jjt@r.|dtkr.|ddks�|�||�|jr�t�nD|jr�||jk r�|jjjt@r�|dtt fkr�|�||�|jr�t�|j
S)Nr�)r1r8r9r:�
StopIteration�user_exceptionr'rr7�
GeneratorExitr,r<rrrr+�s$
�
���zBdb.dispatch_exceptioncCs.|dkrdS|jD]}t�||�rdSqdS�NFT)r�fnmatch)rZmodule_name�patternrrr�is_skipped_module�s
zBdb.is_skipped_modulecCsN|jr|�|j�d��rdS||jkr@|jdkr4dS|j|jkS|jsJdSdS)NrFrT)rrH� f_globalsrr7r@�f_linenor4rrrr1�s�
z
Bdb.stop_herecCs�|�|jj�}||jkrdS|j}||j|krJ|jj}||j|krJdSt|||�\}}|r�|j|_|r�|j r�|�
t|j��dSdSdSrE)rr8�co_filenamerrJ�co_firstlineno� effective�numberZ currentbp� temporary�do_clear�str)rr/r�lineno�bp�flagrrrr2�s
zBdb.break_herecCstd��dS)Nz)subclass of bdb must implement do_clear())�NotImplementedError)rr0rrrrP�szBdb.do_clearcCs|�|jj�|jkSr
)rr8rKrr4rrrr6�szBdb.break_anywherecCsdSr
r)rr/Z
argument_listrrrr;sz
Bdb.user_callcCsdSr
rr4rrrr3sz
Bdb.user_linecCsdSr
r)rr/Zreturn_valuerrrr? szBdb.user_returncCsdSr
r)rr/�exc_inforrrrC
szBdb.user_exceptionrcCs||_||_d|_||_dS�NF)r7r>r'r@)rr7r>r@rrrr#szBdb._set_stopinfocCs$|dkr|jd}|�|||�dS)Nr)rJr#)rr/rRrrr� set_until"s
z
Bdb.set_untilcCs0|jr |jj}|r |js |j|_|�dd�dSr
)rr5�f_tracer,r#)rZcaller_framerrr�set_step*s
zBdb.set_stepcCs|�|d�dSr
)r#r4rrr�set_next6szBdb.set_nextcCs.|jjt@r|�|dd�n|�|j|�dSr=)r8r9r:r#r5r4rrr�
set_return:szBdb.set_returncCsL|dkrt��j}|��|r4|j|_||_|j}q|��t�|j�dSr
) �sys� _getframer5r$r,rYr"rZ�settracer4rrr� set_traceAs
z
Bdb.set_tracecCsH|�|jdd�|jsDt�d�t��j}|rD||jk rD|`|j}q*dSr=)r#r"rr]r_r^r5rYr4rrr�set_continuePs
zBdb.set_continuecCs"|j|_d|_d|_t�d�dS�NT)r"r7r>r'r]r_�rrrr�set_quit_szBdb.set_quitFc
Csb|�|�}ddl}|�||�}|s.d||fS|j�|g�}||krN|�|�t|||||�} dS)NrzLine %s:%d does not exist)rr �getliner�
setdefault�appendr)
rrrRrO�cond�funcnamer r%�listrSrrr� set_breakps
z
Bdb.set_breakcCs4||ftjkr|j|�|�|j|s0|j|=dSr
)r�bplistr�remove�rrrRrrr�
_prune_breaks�s
zBdb._prune_breakscCsj|�|�}||jkrd|S||j|kr6d||fStj||fdd�D]}|��qL|�||�dS)N�There are no breakpoints in %szThere is no breakpoint at %s:%d)rrrrl�deleteMero)rrrRrSrrr�clear_break�s
zBdb.clear_breakc
CsZz|�|�}Wn.tk
r<}zt|�WY�Sd}~XYnX|��|�|j|j�dSr
)�get_bpbynumber�
ValueErrorrQrqro�filer%)rr0rS�errrrr�clear_bpbynumber�szBdb.clear_bpbynumbercCsX|�|�}||jkrd|S|j|D]$}tj||f}|D]}|��q<q&|j|=dS)Nrp)rrrrlrq)rrr%ZblistrSrrr�clear_all_file_breaks�s
zBdb.clear_all_file_breakscCs,|js
dStjD]}|r|��qi|_dS)NzThere are no breakpoints)rr�
bpbynumberrq)rrSrrr�clear_all_breaks�s
zBdb.clear_all_breakscCs�|std��zt|�}Wn"tk
r:td|�d�YnXztj|}Wn"tk
rltd|�d�YnX|dkr�td|��|S)NzBreakpoint number expectedz Non-numeric breakpoint number %sz!Breakpoint number %d out of rangezBreakpoint %d already deleted)rt�intrry�
IndexError)rr0rNrSrrrrs�szBdb.get_bpbynumbercCs"|�|�}||jko ||j|kSr
�rrrnrrr� get_break�s
�z
Bdb.get_breakcCs4|�|�}||jkr0||j|kr0tj||fp2gSr
)rrrrlrnrrr�
get_breaks�s
���zBdb.get_breakscCs&|�|�}||jkr|j|SgSdSr
r})rrrrr�get_file_breaks�s
zBdb.get_file_breakscCs|jSr
)rrcrrr�get_all_breaks�szBdb.get_all_breakscCs�g}|r|j|kr|j}|dk rD|�||jf�||jkr<qD|j}q|��tdt|�d�}|dk r�|�|j|j f�|j}q^|dkr�tdt|�d�}||fS)Nrr)
�tb_frame�tb_nextrgrJr"r5�reverse�max�len� tb_lineno)r�f�t�stack�irrr� get_stack�s
z
Bdb.get_stack�: cCs�ddl}ddl}|\}}|�|jj�}d||f}|jjrH||jj7}n|d7}|d7}d|jkr�|jd} |d7}||�| �7}|�|||j �}
|
r�|||
�
�7}|S)Nrz%s(%r)z<lambda>z()Z
__return__z->)r �reprlibrr8rK�co_name�f_localsr.rerI�strip)rZframe_linenoZlprefixr r�r/rRr�s�rvr%rrr�format_stack_entrys
zBdb.format_stack_entryc Cs�|dkrddl}|j}|dkr"|}|��t|t�r@t|dd�}t�|j�z*zt
|||�Wntk
rrYnXW5d|_ t�d�XdS)Nrz<string>�execT)�__main__�__dict__r$�
isinstancerQ�compiler]r_r,r'r�r)r�cmd�globals�localsr�rrr�run5s
zBdb.runc Csz|dkrddl}|j}|dkr"|}|��t�|j�z,zt|||�WW�Stk
r^YnXW5d|_t�d�XdS)NrT) r�r�r$r]r_r,r'�evalr)r�exprr�r�r�rrr�runevalKs
zBdb.runevalcCs|�|||�dSr
)r�)rr�r�r�rrr�runctx_sz
Bdb.runctxc Os�t|�dkr|^}}}nV|s&td��nHd|krZ|�d�}|^}}ddl}|jdtdd�ntdt|�d��|��t�|j �d}z(z|||�}Wntk
r�YnXW5d |_
t�d�X|S)
NrAz6descriptor 'runcall' of 'Bdb' object needs an argument�funcrz0Passing 'func' as keyword argument is deprecated)�
stacklevelz7runcall expected at least 1 positional argument, got %drT)r�� TypeError�pop�warnings�warn�DeprecationWarningr$r]r_r,r'r)�args�kwdsrr�r��resrrr�runcallfs2
�
�
zBdb.runcallz($self, func, /, *args, **kwds))N)r)N)N)FNN)r�)NN)NN).rr r
rrr$r,r(r)r*r+rHr1r2rPr6r;r3r?rCr#rXrZr[r\r`rardrkrorrrwrxrzrsr~rr�r�r�r�r�r�r�r��__text_signature__rrrrrsZ
+
�
cCst���dSr
)rr`rrrrr`�sr`c@sVeZdZdZiZdgZddd�Zdd�Zdd �Zd
d�Z ddd
�Z
dd�Zdd�ZdS)rrNFcCs�||_d|_||_||_||_||_d|_d|_d|_t j
|_t j
d7_
|j�
|�||f|jkr||j||f�
|�n|g|j||f<dS)NTrr)ri�func_first_executable_linerur%rOrh�enabled�ignore�hitsr�nextrNryrgrl)rrur%rOrhrirrrr�szBreakpoint.__init__cCs>|j|jf}d|j|j<|j|�|�|j|s:|j|=dSr
)rur%ryrNrlrm)r�indexrrrrq�s
zBreakpoint.deleteMecCs
d|_dSrb�r�rcrrr�enable�szBreakpoint.enablecCs
d|_dSrWr�rcrrr�disable�szBreakpoint.disablecCs"|dkrtj}t|��|d�dS)N)ru)r]�stdoutr-�bpformat)r�outrrr�bpprint�szBreakpoint.bpprintcCs�|jrd}nd}|jr |d}n|d}d|j||j|jf}|jrT|d|jf7}|jrj|d|jf7}|jr�|jdkr�d }nd
}|d|j|f7}|S)Nzdel zkeep zyes zno z%-4dbreakpoint %s at %s:%dz
stop only if %sz
ignore next %d hitsrr��z"
breakpoint already hit %d time%s)rOr�rNrur%rhr�r�)rZdispZretZssrrrr��s(
�
zBreakpoint.bpformatcCsd|j|j|jfS)Nzbreakpoint %s at %s:%s)rNrur%rcrrr�__str__�szBreakpoint.__str__)FNN)N)
rr r
r�rlryrrqr�r�r�r�r�rrrrr�s
cCsN|js|j|jkrdSdS|jj|jkr,dS|js:|j|_|j|jkrJdSdSrE)rir%rJr8r�r�)�br/rrr�
checkfuncnamesr�cCs�tj||f}|D]�}|jsqt||�s*q|jd7_|jsh|jdkrZ|jd8_qq�|dfSqzBt|j|j|j �}|r�|jdkr�|jd8_n|dfWSWq|dfYSXqdS)NrrTF)NN)
rrlr�r�r�rhr�r�rIr�)rur%r/Z possiblesr��valrrrrM#s*
rMc@s,eZdZdd�Zdd�Zdd�Zdd�Zd S)
�TdbcCs |jj}|sd}td||�dS)N�???z+++ call)r8r�r-)rr/r��namerrrr;Tsz
Tdb.user_callcCsTddl}|jj}|sd}|�|jj�}|�||j|j�}td||j|d|� ��dS)Nrr�z+++�:)
r r8r�rrKrerJrIr-r�)rr/r r��fnr%rrrr3Xsz
Tdb.user_linecCstd|�dS)Nz
+++ return�r-)rr/Zretvalrrrr?_szTdb.user_returncCstd|�|��dS)Nz
+++ exception)r-ra)rr/Z exc_stuffrrrrCas
zTdb.user_exceptionN)rr r
r;r3r?rCrrrrr�Ssr�cCs&td|d�t|d�}td|�dS)Nzfoo(�)�
zbar returned)r-�bar)�n�xrrr�fooesr�cCstd|d�|dS)Nzbar(r�rAr�)�arrrr�jsr�cCst�}|�d�dS)Nzimport bdb; bdb.foo(10))r�r�)r�rrr�testnsr�)rFr]r�inspectrrr�__all__r:� Exceptionrrr`rr�rMr�r�r�r�rrrr�<module>s&
{t"0
?>