Plan 9 from Bell Labs’s /usr/web/sources/contrib/stallion/root/sys/lib/python2.7/pdb.pyo

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


�`^c	@s�dZddlZddlZddlZddlZddlmZddlZddlZddl	Z	ddl
Z
defd��YZe�Z
de
_e
jZddd	d
ddd
ddg	Zd�ZdZd	ejejfd��YZeed�Zeed�Zd�Zd�Zd�Zed�Zd�ZdZd�Zd�Z d�Z!e"dkr�ddl#Z#e#j!�ndS(sA Python debugger.i�N(tReprtRestartcBseZdZRS(sBCauses a debugger to be restarted for the debugged python program.(t__name__t
__module__t__doc__(((s/sys/lib/python2.7/pdb.pyRsi�truntpmtPdbtrunevaltrunctxtruncallt	set_tracetpost_mortemthelpcCs�tjdtj|��}yt|�}Wntk
r@dSXd}d}xK|j�}|dkrlPn|j|�r�|||f}Pn|d}qP|j�|S(Nsdef\s+%s\s*[(]it(	tretcompiletescapetopentIOErrortNonetreadlinetmatchtclose(tfuncnametfilenametcretfptlinenotanswertline((s/sys/lib/python2.7/pdb.pyt
find_functions"


s
-> cBsDeZddldldld�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�ZejjZd�Zdd�Zd�ZeZd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d�Z"e"Z#d�Z$e$Z%e$Z&d�Z'e'Z(d�Z)e)Z*d �Z+e+Z,d!�Z-e-Z.d"�Z/e/Z0d#�Z1e1Z2d$�Z3e3Z4d%�Z5e5Z6Z7d&�Z8e8Z9d'�Z:d(�Z;e;Z<e;Z=d)�Z>d*�Z?e?Z@d+�ZAeAZBd,�ZCd-�ZDd.�ZEd/�ZFeFZGd0�ZHd1�ZId2�ZJd3d4d5d6d7d8gZKd9�ZLeMd:�ZNd;�ZOd<�ZPd=�ZQd>�ZReRZSd?�ZTd@�ZUdA�ZVdB�ZWdC�ZXdD�ZYdE�ZZdF�Z[dG�Z\dH�Z]dI�Z^dJ�Z_dK�Z`dL�ZadM�ZbdN�ZcdO�ZddP�ZedQ�ZfdR�ZgdS�ZhdT�ZidU�ZjdV�ZkdW�ZldX�ZmdY�ZndZ�Zod[�Zpd\�Zqd]�Zrd^�Zsd_�Ztd`�Zuda�ZvevZwdb�Zxdc�ZyeyZzdd�Z{de�Z|df�Z}dg�Z~dh�Zdi�Z�dj�Z�dk�Z�RS(mttabc	Cs�tjj|d|�tjj||||�|rAd|_nd|_i|_d|_d|_	yddl
}Wntk
r�nXg|_dt
jkrt
jd}ytt
jj|d��}Wntk
r�qXx$|j�D]}|jj|�q�|j�nytd�}Wntk
r8n2Xx$|j�D]}|jj|�qFW|j�i|_i|_i|_t|_d|_dS(Ntskipis(Pdb) Ri�tHOMEs.pdbrc(tbdbtBdbt__init__tcmdtCmdtuse_rawinputtprompttaliasest
mainpyfilet_wait_for_mainpyfileRtImportErrortrcLinestostenvironRtpathtjoinRt	readlinestappendRtcommandstcommands_doprompttcommands_silenttFalsetcommands_definingRt
commands_bnum(	tselftcompletekeytstdintstdoutR!RtenvHometrcFileR((s/sys/lib/python2.7/pdb.pyR%=sD				
	




				cCstjj|�|j�dS(N(R#R$tresettforget(R;((s/sys/lib/python2.7/pdb.pyRAkscCs(d|_g|_d|_d|_dS(Ni(RRtstacktcurindextcurframe(R;((s/sys/lib/python2.7/pdb.pyRBos			cCs\|j�|j||�\|_|_|j|jd|_|jj|_|j�dS(Ni(RBt	get_stackRCRDREtf_localstcurframe_localstexecRcLines(R;tftt((s/sys/lib/python2.7/pdb.pytsetupus

cCso|jrk|j}g|_xM|D]B}|d }t|�dkr"|ddkr"|j|�q"q"WndS(Ni�it#(R.tlentonecmd(R;R.R((s/sys/lib/python2.7/pdb.pyRI�s			

"cCs@|jr
dS|j|�r<|jdIJ|j|d�ndS(snThis method is called when there is the remote possibility
        that we ever need to stop in this function.Ns--Call--(R,t	stop_hereR>tinteractionR(R;tframet
argument_list((s/sys/lib/python2.7/pdb.pyt	user_call�s
	
cCsl|jrF|j|j|jj�ks6|jdkr:dSd|_n|j|�rh|j|d�ndS(s;This function is called when we stop or break at this line.iN(	R,R+tcanonictf_codetco_filenametf_linenotbp_commandsRQR(R;RR((s/sys/lib/python2.7/pdb.pyt	user_line�s	cCs�t|dt�r�|j|jkr�|j}d|_|j}|j|d�x"|j|D]}|j|�q]W||_|j|s�|j	|j
|j�n|j|r�|j
�n|j�dSdS(s�Call every command that was set for the current active breakpoint
        (if there is one).

        Returns True if the normal interaction function must be called,
        False otherwise.t	currentbpiNi(tgetattrR8R[R5tlastcmdRLRROR7tprint_stack_entryRCRDR6tcmdloopRB(R;RRR[tlastcmd_backR((s/sys/lib/python2.7/pdb.pyRY�s 				



cCs;|jr
dS||jd<|jdIJ|j|d�dS(s7This function is called when a return trap is set here.Nt
__return__s
--Return--(R,RGR>RQR(R;RRtreturn_value((s/sys/lib/python2.7/pdb.pytuser_return�s
	

cCs�|jr
dS|\}}}||f|jd<t|�td�krP|}n	|j}|j|dIt|�IJ|j||�dS(soThis function is called if an exception occurs,
        but only if we are to stop at or just below this level.Nt
__exception__Rt:(R,RGttypeRR>t	_safereprRQ(R;RRtexc_infotexc_typet	exc_valuet
exc_tracebackt
exc_type_name((s/sys/lib/python2.7/pdb.pytuser_exception�s			cCs?|j||�|j|j|j�|j�|j�dS(N(RLR^RCRDR_RB(R;RRt	traceback((s/sys/lib/python2.7/pdb.pyRQ�s
cCs|dk	rt|�GHndS(s{Custom displayhook for the exec in default(), which prevents
        assignment of the _ variable in the builtins.
        N(Rtrepr(R;tobj((s/sys/lib/python2.7/pdb.pytdisplayhook�scBs#|d dkr|d}n|j}|jj}y�e|ddd�}ej}ej}ej}z2|je_|je_|je_|||UWd|e_|e_|e_XWndej�d \}}	e	|�e	d�kr�}
n	|j
}
|jdI|
d	I|	IJnXdS(
Nit!s
s<stdin>tsingleiRs***Re(RHREt	f_globalsRtsysR>R=RqRhRfR(R;Rtlocalstglobalstcodetsave_stdoutt
save_stdintsave_displayhookRKtvRl((s/sys/lib/python2.7/pdb.pytdefault�s.
								cCs|j�s|S|j�}x�|d|jkr�|j|d}d}x8|dD],}|jdt|�|�}|d}qTW|jddj|d��}|j�}qW|ddkr|jd�}|dkr||dj�}|jj	|�|| j
�}qn|S(	s*Handle alias expansion and ';;' separator.iit%s%*t taliass;;i(tstriptsplitR*treplacetstrR2tfindtlstriptcmdqueueR4trstrip(R;RtargstiittmpArgtmarkertnext((s/sys/lib/python2.7/pdb.pytprecmd�s&	cCs-|jstjj||�S|j|�SdS(s�Interpret the argument as though it had been typed in response
        to the prompt.

        Checks whether this line is typed at the normal prompt or in
        a breakpoint command list definition.
        N(R9R&R'ROthandle_command_def(R;R((s/sys/lib/python2.7/pdb.pyROs	cCs�|j|�\}}}|s"dS|dkrBt|j|j<dS|dkr[g|_dS|j|j}|r�|j|d|�n
|j|�yt|d|�}Wntk
r�|j	}nX|j
|jkr�|j
|j<g|_dSdS(s8Handles one command line during command list definition.NtsilenttendiRtdo_(t	parselinetTrueR7R:R�R5R4R\tAttributeErrorR}t	func_nametcommands_resumingR8R6(R;RR&targtcmdlisttfunc((s/sys/lib/python2.7/pdb.pyR�s,	


	cCs�|sttjj�d}n(yt|�}Wn|jdIJdSX||_g|j|<t|j	|<t
|j|<|j}d|_t|_
z|j�Wdt
|_
||_XdS(s�Defines a list of commands associated to a breakpoint.

        Those commands will be executed whenever the breakpoint causes
        the program to stop execution.is/Usage : commands [bnum]
        ...
        endNs(com) (RNR#t
Breakpointt
bpbynumbertintR>R:R5R�R6R8R7R)R9R_(R;R�tbnumtprompt_back((s/sys/lib/python2.7/pdb.pytdo_commands=s$
	


				icCs |sS|jrO|jdIJx0tjjD]}|r)|j|j�q)q)WndSd}d}d}|jd�}|dkr�||dj�}|| j	�}n|j
d�}d}	|dkrn|| j	�}|j|�}
|
s|jdIt|�I|jdIJdS|
}||dj�}yt
|�}Wq|tk
rj}|jdI|IJdSXnyt
|�}Wn�k
r{yt||jj|j�}Wn
|}nXyCt|d	�r�|j}n|j}
|
j}	|
j}|
j}Wq||j|�\}}}|sb|jd
I|jt|�I|jdIJ|jdIJdS|}	t
|�}q|XnX|s�|j�}n|j||�}|r|j|||||	�}|r�jd
I|IJq|j||�d}|jd|j|j|j fIJndS(Ns!Num Type         Disp Enb   Wheret,iiRes*** snot found from sys.paths*** Bad lineno:tim_funcs*** The specified objectsis not a functions or was not found along sys.path.s***i�sBreakpoint %d at %s:%d(!tbreaksR>R#R�R�tbpprintRR�R�R�trfindtlookupmoduleRoR�t
ValueErrortevalRERtRHthasattrR�t	func_codetco_nametco_firstlinenoRWtlineinfotdefaultFilet	checklinet	set_breakt
get_breakstnumbertfileR(R;R�t	temporarytbpRRtcondtcommatcolonRRJtmsgR�RxtoktlnRterr((s/sys/lib/python2.7/pdb.pytdo_breakXs�	


	
			



cCs4|jjj}|dkr0|jr0|j}n|S(sProduce a reasonable default.s<string>(RERVRWR+(R;R((s/sys/lib/python2.7/pdb.pyR��scCs|j|d�dS(Ni(R�(R;R�((s/sys/lib/python2.7/pdb.pyt	do_tbreak�sc
Cs"d}|jd�}t|�dkr:|dj�}n)t|�dkr_|dj�}n|S|dkrs|S|jd�}|ddkr�|d=t|�dkr�|Sn|j�}t|�dkr�|d}n,|j|d�}|r�}n|d}t||�}	|	p!|S(	Nt'iiiRt.R;(NNN(RR�RNR�R�R�R(
R;t
identifiertfailedtidstringtidtpartstfnametitemRJR((s/sys/lib/python2.7/pdb.pyR��s.
	
cCs�t|d�r|jjnd	}tj|||�}|sM|jdIJdS|j�}|s�|ddks�|d dks�|d dkr�|jdIJdS|S(
s�Check whether specified line seems to be executable.

        Return `lineno` if it is, 0 if not (e.g. a docstring, comment, blank
        line or EOF). Warning: testing is not comprehensive.
        REsEnd of fileiRMis"""s'''s*** Blank or commentN(R�RERtRt	linecachetgetlineR>R�(R;RRtglobsR((s/sys/lib/python2.7/pdb.pyR��s!
 
cCs�|j�}x�|D]�}yt|�}Wn%tk
rP|jd|IJqnXd|kotttjj�kns�|jdI|IJqntjj|}|r|j�qqWdS(Ns#Breakpoint index %r is not a numberisNo breakpoint numbered(	R�R�R�R>RNR#R�R�tenable(R;R�R�tiR�((s/sys/lib/python2.7/pdb.pyt	do_enable�s

(cCs�|j�}x�|D]�}yt|�}Wn%tk
rP|jd|IJqnXd|kotttjj�kns�|jdI|IJqntjj|}|r|j�qqWdS(Ns#Breakpoint index %r is not a numberisNo breakpoint numbered(	R�R�R�R>RNR#R�R�tdisable(R;R�R�R�R�((s/sys/lib/python2.7/pdb.pyt
do_disable�s

(cCs�|jdd�}yt|dj��}Wn'tk
rU|jd|dIJdSXy|d}Wn
d}nXytjj|}Wn't	k
r�|jd|dIJdSX|r�|_
|s�jdI|I|jdIJq�dS(NRiis#Breakpoint index %r is not a numbers Breakpoint index %r is not validR�sis now unconditional.(R�R�R�R�R>RR#R�R�t
IndexErrorR�(R;R�R�tbpnumR�R�((s/sys/lib/python2.7/pdb.pytdo_conditions*


	cCs?|j�}yt|dj��}Wn'tk
rO|jd|dIJdSXyt|dj��}Wn
d}nXytjj|}Wn'tk
r�|jd|dIJdSX|r;||_	|dkrd}|dkr�d|}n
|d}|j|d	|IJq;|jd
I|j|IdIJndS(s*arg is bp number followed by ignore count.is#Breakpoint index %r is not a numberNis Breakpoint index %r is not validsWill ignore next s%d crossingss
1 crossings of breakpoint %d.sWill stop next time breakpointsis reached.(
R�R�R�R�R>R#R�R�R�tignore(R;R�R�R�tcountR�treply((s/sys/lib/python2.7/pdb.pyt	do_ignore(s4


	

cCs�|s_ytd�}Wntk
r/d}nX|j�j�}|dkr[|j�ndSd|kr�jd�}|| }||d}yt|�}Wntk
r�d|}nX|j||�}|r�j	d	I|IJndS|j
�}x�|D]�}yt|�}Wn%tk
rB|j	d
|IJqnXd|kofttj
j�kns�|j	dI|IJqn|j|�}|r�|j	d	I|IJq|j	d
I|IJqWdS(s�Three possibilities, tried in this order:
        clear -> clear all breaks, ask for confirmation
        clear file:lineno -> clear all breaks at file:lineno
        clear bpno bpno ... -> clear breakpoints by numbersClear all breaks? tnotytyesNReisInvalid line number (%s)s***s#Breakpoint index %r is not a numberisNo breakpoint numberedsDeleted breakpoint(R�R�(t	raw_inputtEOFErrorR�tlowertclear_all_breaksR�R�R�tclear_breakR>R�RNR#R�R�tclear_bpbynumber(R;R�R�R�RRR�t
numberlist((s/sys/lib/python2.7/pdb.pytdo_clearHsF






(cCs|j�dS(N(tprint_stack_trace(R;R�((s/sys/lib/python2.7/pdb.pytdo_whereuscCsy|jdkr|jdIJnV|jd|_|j|jd|_|jj|_|j|j|j�d|_dS(Nis*** Oldest framei(	RDR>RCRERGRHR^RR(R;R�((s/sys/lib/python2.7/pdb.pytdo_upzscCs�|jdt|j�kr,|jdIJnV|jd|_|j|jd|_|jj|_|j|j|j�d|_	dS(Nis*** Newest framei(
RDRNRCR>RERGRHR^RR(R;R�((s/sys/lib/python2.7/pdb.pytdo_down�scCs|j|j�dS(Ni(t	set_untilRE(R;R�((s/sys/lib/python2.7/pdb.pytdo_until�scCs|j�dS(Ni(tset_step(R;R�((s/sys/lib/python2.7/pdb.pytdo_step�s
cCs|j|j�dS(Ni(tset_nextRE(R;R�((s/sys/lib/python2.7/pdb.pytdo_next�scCsN|rDddl}tjdd!}|j|�t_|tjd*nt�dS(s�Restart program by raising an exception to be caught in the main
        debugger loop.  If arguments were given, set them in sys.argv.i�Nii(tshlexRutargvR�R(R;R�R�targv0((s/sys/lib/python2.7/pdb.pytdo_run�scCs|j|j�dS(Ni(t
set_returnRE(R;R�((s/sys/lib/python2.7/pdb.pyt	do_return�scCs|j�dS(Ni(tset_continue(R;R�((s/sys/lib/python2.7/pdb.pytdo_continue�s
cCs�|jdt|j�kr-|jdIJdSyt|�}Wntk
r]|jdIJnuXyK||j_|j|jd|f|j|j<|j|j|j�Wn&tk
r�}|jdI|IJnXdS(Nis-*** You can only jump within the bottom frames.*** The 'jump' command requires a line number.is*** Jump failed:(	RDRNRCR>R�R�RERXR^(R;R�te((s/sys/lib/python2.7/pdb.pytdo_jump�s

$cCs�tjd�|jj}|j}t|j|j|j	�}d|j
j�|_
|j	dIJtj|j
|||f�|j	dIJtj|j�|j|_dS(Ns(%s) sENTERING RECURSIVE DEBUGGERsLEAVING RECURSIVE DEBUGGER(RutsettraceRRERtRHRR<R=R>R)R�tcall_tracingRttrace_dispatchR](R;R�RwRvtp((s/sys/lib/python2.7/pdb.pytdo_debug�s
	

cCsd|_|j�dS(Ni(t_user_requested_quittset_quit(R;R�((s/sys/lib/python2.7/pdb.pytdo_quit�s	
cCs|jJd|_|j�dS(Ni(R>R�R�(R;R�((s/sys/lib/python2.7/pdb.pytdo_EOF�s	
cCs�|jj}|j}|j}|jd@r8|d}n|jd@rR|d}nxat|�D]S}|j|}|j|IdI||kr�|j||IJq_|jdIJq_WdS(Niiit=s*** undefined ***(RERVRHtco_argcounttco_flagstrangetco_varnamesR>(R;R�tcotdicttnR�tname((s/sys/lib/python2.7/pdb.pytdo_args�s		




cCs7d|jkr&|j|jdIJn
|jdIJdS(NRas*** Not yet returned!(RHR>(R;R�((s/sys/lib/python2.7/pdb.pyt	do_retval�scCs�yt||jj|j�SWndtj�d \}}t|t�rQ|}n	|j}|j	dI|dIt
|�IJ�nXdS(Nis***Re(R�RERtRHRuRht
isinstanceR�RR>Ro(R;R�RKR|Rl((s/sys/lib/python2.7/pdb.pyt_getval�s		#cCs.y |jt|j|��IJWnnXdS(N(R>RoR(R;R�((s/sys/lib/python2.7/pdb.pytdo_ps cCs.y tj|j|�|j�WnnXdS(N(tpprintRR>(R;R�((s/sys/lib/python2.7/pdb.pytdo_pps c
Cs2d|_d}|r�y�t|ii�}t|�td
�kr�|\}}t|�}t|�}||kr�||}q�ntdt|�d�}Wq�|jdIt|�IJdSXn8|jdkr�d|j	j
d�}n
|jd}|dkr|d}n|j	jj}|j
|�}y��||d�D]�}tj|||j	j�}|s�|jdIJPqIt|�jd�}	t|	�dkr�|	d	}	n||kr�|	d
}	n
|	d	}	||j	j
kr�d}	n|j|	d|I||_qIWWntk
r-nXdS(Ntlistiis*** Error in argument:i
s[EOF]iiRtBs->s	((R]RR�RfR�tmaxR>RoRRERXRVRWtget_file_breaksRR�R�RttrjustRNtKeyboardInterrupt(
R;R�tlasttxtfirstRt	breaklistRRts((s/sys/lib/python2.7/pdb.pytdo_listsR	







cCsyt||jj|j�}Wnktj�d \}}t|�td�kr\|}n	|j}|jdI|dIt	|�IJdSXd}y
|j}WnnX|r�|jdI|jIJdSy|j
j}WnnX|r|jdI|jIJdS|jt|�IJdS(NiRs***RetFunctiontMethod(R�RERtRHRuRhRfRR>RoRR�R�R�(R;R�tvalueRKR|RlRx((s/sys/lib/python2.7/pdb.pyt	do_whatis<s4		#
cCs�|j�}t|�dkrj|jj�}|j�x,|D]$}|jd||j|fIJq>WdS|d|jkr�t|�dkr�|jd|d|j|dfIJndj|d�|j|d<dS(Nis%s = %siR(R�RNR*tkeystsortR>R2(R;R�R�RR�((s/sys/lib/python2.7/pdb.pytdo_aliasWs

"%)cCsJ|j�}t|�dkr"dS|d|jkrF|j|d=ndS(Ni(R�RNR*(R;R�R�((s/sys/lib/python2.7/pdb.pyt
do_unaliasds
R�R�R�R�R�R�cCs=y%x|jD]}|j|�q
WWntk
r8nXdS(N(RCR^R(R;tframe_lineno((s/sys/lib/python2.7/pdb.pyR�vs

cCsU|\}}||jkr+|jdIn
|jdI|j|j||�IJdS(Nt>R(RER>tformat_stack_entry(R;R#t
prompt_prefixRRR((s/sys/lib/python2.7/pdb.pyR^}s
cCs|j�dS(N(thelp_h(R;((s/sys/lib/python2.7/pdb.pyt	help_help�scCs|jdIJdS(Ns�h(elp)
Without argument, print the list of available commands.
With a command name as argument, print help about that command
"help pdb" pipes the full documentation file to the $PAGER
"help exec" gives help on the ! command(R>(R;((s/sys/lib/python2.7/pdb.pyR'�scCs|j�dS(N(thelp_w(R;((s/sys/lib/python2.7/pdb.pyt
help_where�scCs|jdIJdS(Ns�w(here)
Print a stack trace, with the most recent frame at the bottom.
An arrow indicates the "current frame", which determines the
context of most commands.  'bt' is an alias for this command.(R>(R;((s/sys/lib/python2.7/pdb.pyR)�scCs|j�dS(N(thelp_d(R;((s/sys/lib/python2.7/pdb.pyt	help_down�scCs|jdIJdS(NsSd(own)
Move the current frame one level down in the stack trace
(to a newer frame).(R>(R;((s/sys/lib/python2.7/pdb.pyR+�scCs|j�dS(N(thelp_u(R;((s/sys/lib/python2.7/pdb.pythelp_up�scCs|jdIJdS(NsPu(p)
Move the current frame one level up in the stack trace
(to an older frame).(R>(R;((s/sys/lib/python2.7/pdb.pyR-�scCs|j�dS(N(thelp_b(R;((s/sys/lib/python2.7/pdb.pyt
help_break�scCs|jdIJdS(NsFb(reak) ([file:]lineno | function) [, condition]
With a line number argument, set a break there in the current
file.  With a function name, set a break at first executable line
of that function.  Without argument, list all breaks.  If a second
argument is present, it is a string specifying an expression
which must evaluate to true before the breakpoint is honored.

The line number may be prefixed with a filename and a colon,
to specify a breakpoint in another file (probably one that
hasn't been loaded yet).  The file is searched for on sys.path;
the .py suffix may be omitted.(R>(R;((s/sys/lib/python2.7/pdb.pyR/�s
cCs|j�dS(N(thelp_cl(R;((s/sys/lib/python2.7/pdb.pyt
help_clear�scCs|jdIJ|jdIJdS(Nscl(ear) filename:linenos�cl(ear) [bpnumber [bpnumber...]]
With a space separated list of breakpoint numbers, clear
those breakpoints.  Without argument, clear all breaks (but
first ask confirmation).  With a filename:lineno argument,
clear all breaks at that line in that file.

Note that the argument is different from previous versions of
the debugger (in python distributions 1.5.1 and before) where
a linenumber was used instead of either filename:lineno or
breakpoint numbers.(R>(R;((s/sys/lib/python2.7/pdb.pyR1�s
	cCs|jdIJdS(NsJtbreak  same arguments as break, but breakpoint
is removed when first hit.(R>(R;((s/sys/lib/python2.7/pdb.pythelp_tbreak�scCs|jdIJdS(Nseenable bpnumber [bpnumber ...]
Enables the breakpoints given as a space separated list of
bp numbers.(R>(R;((s/sys/lib/python2.7/pdb.pythelp_enable�scCs|jdIJdS(Nsgdisable bpnumber [bpnumber ...]
Disables the breakpoints given as a space separated list of
bp numbers.(R>(R;((s/sys/lib/python2.7/pdb.pythelp_disable�scCs|jdIJdS(Ns(ignore bpnumber count
Sets the ignore count for the given breakpoint number.  A breakpoint
becomes active when the ignore count is zero.  When non-zero, the
count is decremented each time the breakpoint is reached and the
breakpoint is not disabled and any associated condition evaluates
to true.(R>(R;((s/sys/lib/python2.7/pdb.pythelp_ignore�scCs|jdIJdS(Ns�condition bpnumber str_condition
str_condition is a string specifying an expression which
must evaluate to true before the breakpoint is honored.
If str_condition is absent, any existing condition is removed;
i.e., the breakpoint is made unconditional.(R>(R;((s/sys/lib/python2.7/pdb.pythelp_condition�scCs|j�dS(N(thelp_s(R;((s/sys/lib/python2.7/pdb.pyt	help_step�scCs|jdIJdS(Ns�s(tep)
Execute the current line, stop at the first possible occasion
(either in a function that is called or in the current function).(R>(R;((s/sys/lib/python2.7/pdb.pyR8�scCs|j�dS(N(thelp_unt(R;((s/sys/lib/python2.7/pdb.pyt
help_until�scCs	dGHdS(Ns�unt(il)
Continue execution until the line with a number greater than the current
one is reached or until the current frame returns((R;((s/sys/lib/python2.7/pdb.pyR:�scCs|j�dS(N(thelp_n(R;((s/sys/lib/python2.7/pdb.pyt	help_next�scCs|jdIJdS(Ns_n(ext)
Continue execution until the next line in the current function
is reached or it returns.(R>(R;((s/sys/lib/python2.7/pdb.pyR<�scCs|j�dS(N(thelp_r(R;((s/sys/lib/python2.7/pdb.pythelp_returnscCs|jdIJdS(Ns?r(eturn)
Continue execution until the current function returns.(R>(R;((s/sys/lib/python2.7/pdb.pyR>scCs|j�dS(N(thelp_c(R;((s/sys/lib/python2.7/pdb.pyt
help_continue
scCs|j�dS(N(R@(R;((s/sys/lib/python2.7/pdb.pyt	help_cont
scCs|jdIJdS(NsLc(ont(inue))
Continue execution, only stop when a breakpoint is encountered.(R>(R;((s/sys/lib/python2.7/pdb.pyR@scCs|j�dS(N(thelp_j(R;((s/sys/lib/python2.7/pdb.pyt	help_jumpscCs|jdIJdS(Ns6j(ump) lineno
Set the next line that will be executed.(R>(R;((s/sys/lib/python2.7/pdb.pyRCscCs|jdIJdS(Ns�debug code
Enter a recursive debugger that steps through the code argument
(which is an arbitrary expression or statement to be executed
in the current environment).(R>(R;((s/sys/lib/python2.7/pdb.pyt
help_debugscCs|j�dS(N(thelp_l(R;((s/sys/lib/python2.7/pdb.pyt	help_list!scCs|jdIJdS(Ns8l(ist) [first [,last]]
List source code for the current file.
Without arguments, list 11 lines around the current line
or continue the previous listing.
With one argument, list 11 lines starting at that line.
With two arguments, list the given range;
if the second argument is less than the first, it is a count.(R>(R;((s/sys/lib/python2.7/pdb.pyRF$scCs|j�dS(N(thelp_a(R;((s/sys/lib/python2.7/pdb.pyt	help_args-scCs|jdIJdS(Ns3a(rgs)
Print the arguments of the current function.(R>(R;((s/sys/lib/python2.7/pdb.pyRH0scCs|jdIJdS(Ns/p expression
Print the value of the expression.(R>(R;((s/sys/lib/python2.7/pdb.pythelp_p4scCs|jdIJdS(Ns7pp expression
Pretty-print the value of the expression.(R>(R;((s/sys/lib/python2.7/pdb.pythelp_pp8scCs|jdIJdS(Ns[(!) statement
Execute the (one-line) statement in the context of
the current stack frame.
The exclamation point can be omitted unless the first word
of the statement resembles a debugger command.
To assign to a global variable you must always prefix the
command with a 'global' command, e.g.:
(Pdb) global list_options; list_options = ['-l']
(Pdb)(R>(R;((s/sys/lib/python2.7/pdb.pyt	help_exec<scCs	dGHdS(Ns�run [args...]
Restart the debugged python program. If a string is supplied, it is
split with "shlex" and the result is used as the new sys.argv.
History, breakpoints, actions and debugger options are preserved.
"restart" is an alias for "run".((R;((s/sys/lib/python2.7/pdb.pythelp_runGscCs|j�dS(N(thelp_q(R;((s/sys/lib/python2.7/pdb.pyt	help_quitPscCs|jdIJdS(NsOq(uit) or exit - Quit from the debugger.
The program being executed is aborted.(R>(R;((s/sys/lib/python2.7/pdb.pyRNSscCs|jdIJdS(Ns+whatis arg
Prints the type of the argument.(R>(R;((s/sys/lib/python2.7/pdb.pythelp_whatisYscCs|jdIJdS(Ns,EOF
Handles the receipt of EOF as a command.(R>(R;((s/sys/lib/python2.7/pdb.pythelp_EOF]scCs|jdIJdS(Ns�alias [name [command [parameter parameter ...]]]
Creates an alias called 'name' the executes 'command'.  The command
must *not* be enclosed in quotes.  Replaceable parameters are
indicated by %1, %2, and so on, while %* is replaced by all the
parameters.  If no command is given, the current alias for name
is shown. If no name is given, all aliases are listed.

Aliases may be nested and can contain anything that can be
legally typed at the pdb prompt.  Note!  You *can* override
internal pdb commands with aliases!  Those internal commands
are then hidden until the alias is removed.  Aliasing is recursively
applied to the first word of the command line; all other words
in the line are left alone.

Some useful aliases (especially when placed in the .pdbrc file) are:

#Print instance variables (usage "pi classInst")
alias pi for k in %1.__dict__.keys(): print "%1.",k,"=",%1.__dict__[k]

#Print instance variables in self
alias ps pi self
(R>(R;((s/sys/lib/python2.7/pdb.pyt
help_aliasascCs|jdIJdS(Ns)unalias name
Deletes the specified alias.(R>(R;((s/sys/lib/python2.7/pdb.pythelp_unaliasyscCs|jdIJdS(Nscommands [bpnumber]
(com) ...
(com) end
(Pdb)

Specify a list of commands for breakpoint number bpnumber.  The
commands themselves appear on the following lines.  Type a line
containing just 'end' to terminate the commands.

To remove all commands from a breakpoint, type commands and
follow it immediately with  end; that is, give no commands.

With no bpnumber argument, commands refers to the last
breakpoint set.

You can use breakpoint commands to start your program up again.
Simply use the continue command, or step, or any other
command that resumes execution.

Specifying any command resuming execution (currently continue,
step, next, return, jump, quit and their abbreviations) terminates
the command list (as if that command was immediately followed by end).
This is because any time you resume execution
(even with a simple next or step), you may encounter
another breakpoint--which could have its own command list, leading to
ambiguities about which list to execute.

   If you use the 'silent' command in the command list, the
usual message about stopping at a breakpoint is not printed.  This may
be desirable for breakpoints that are to print a specific message and
then continue.  If none of the other commands print anything, you
see no sign that the breakpoint was reached.
(R>(R;((s/sys/lib/python2.7/pdb.pyt
help_commands}s cCst�dS(N(R
(R;((s/sys/lib/python2.7/pdb.pythelp_pdb�scCs$tjj|�r(tjj|�r(|Stjjtjd|�}tjj|�rr|j|�|jkrr|Stjj|�\}}|dkr�|d}ntjj|�r�|SxdtjD]Y}x%tjj	|�r�j
|�}q�Wtjj||�}tjj|�r�|Sq�WdS(s�Helper function for break/clear parsing -- may be overridden.

        lookupmodule() translates (possibly incomplete) file or module name
        into an absolute file name.
        iRs.pyN(R/R1tisabstexistsR2RuRUR+tsplitexttislinktreadlinkR(R;RRJtroottexttdirnametfullname((s/sys/lib/python2.7/pdb.pyR��s"$*
cCs}ddl}|jj�|jjidd6|d6td6�d|_|j|�|_d|_d|}|j	|�dS(	Ni�t__main__Rt__file__t__builtins__iisexecfile(%r)(
R_t__dict__tcleartupdateRaR,RUR+R�R(R;RR_t	statement((s/sys/lib/python2.7/pdb.pyt
_runscript�s
		
N(�RRRR%RARBRLRIRTRZRYRcRmRQRqR}R�ROR�R&R'tdo_helptdo_hR�R�R�tdo_bR�R�R�R�R�R�R�R�tdo_clR�tdo_wtdo_btR�tdo_uR�tdo_dR�tdo_untR�tdo_sR�tdo_nR�t
do_restartR�tdo_rR�tdo_ctdo_contR�tdo_jR�R�tdo_qtdo_exitR�Rtdo_aR	tdo_rvRRRRtdo_lRR!R"R�R�tline_prefixR^R(R'R*R)thelp_btR,R+R.R-R0R/R2R1R3R4R5R6R7R9R8R;R:R=R<R?R>RARBR@RDRCRERGRFRIRHRJRKRLRMthelp_restartRORNt	help_exitRPRQRRRSRTRUR�Rf(((s/sys/lib/python2.7/pdb.pyR;s�.				
			
									 	S			!					 	+									
		
										,		
	
											
		
																																			#		cCst�j|||�dS(N(RR(ReRwRv((s/sys/lib/python2.7/pdb.pyR�scCst�j|||�S(N(RR(t
expressionRwRv((s/sys/lib/python2.7/pdb.pyR�scCst|||�dS(N(R(ReRwRv((s/sys/lib/python2.7/pdb.pyR	�scOst�j||�S(N(RR
(R�tkwds((s/sys/lib/python2.7/pdb.pyR
�scCst�jtj�j�dS(N(RRRut	_getframetf_back(((s/sys/lib/python2.7/pdb.pyR�scCsa|dkr:tj�d}|dkr:td��q:nt�}|j�|jd|�dS(NisAA valid traceback must be passed if no exception is being handled(RRuRhR�RRARQ(RKR�((s/sys/lib/python2.7/pdb.pyR�s	
cCsttj�dS(N(RRutlast_traceback(((s/sys/lib/python2.7/pdb.pyR�ssimport x; x.main()cCstt�dS(N(RtTESTCMD(((s/sys/lib/python2.7/pdb.pyttest�scCsqxjtjD]V}tjj|d�}tjj|�r
tjd|�}|r\dG|GHnPq
q
WdGdGHdS(Nspdb.docs${PAGER-more} s*** Pager exit status:s)Sorry, can't find the help file "pdb.doc"salong the Python search path(RuR1R/R2RWtsystem(R]R^tsts((s/sys/lib/python2.7/pdb.pyR
scCsvtjds!tjddkr6dGHtjd�ntjd}tjj|�srdG|GdGHtjd�ntjd=tjj|�tjd<t�}x�trqy#|j	|�|j
r�Pnd	GHWq�tk
rd
G|GdGHdd
jtjd�GHq�t
k
r&dGtj�dGHq�tj�dGHdGHtj�d}|jd|�d|dGHq�Xq�WdS(Nis--helps-hs"usage: pdb.py scriptfile [arg] ...isError:sdoes not existis*The program finished and will be restartedt
Restartingswith arguments:s	Rs0The program exited via sys.exit(). Exit status: s2Uncaught exception. Entering post mortem debuggings1Running 'cont' or 'step' will restart the programs#Post mortem debugger finished. The s will be restarted(s--helps-h(RuR�texitR/R1RWR]RR�RfR�RR2t
SystemExitRhRnt	print_excRQR(R+tpdbRK((s/sys/lib/python2.7/pdb.pytmains<!


		
		



R_($RRuR�R&R#RoRR/RR
Rnt	ExceptionRt_reprt	maxstringRgt__all__RR|R$R'RRRRR	R
RRRR�R�R
R�RR�(((s/sys/lib/python2.7/pdb.pyt<module>sH				���							,

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to [email protected].