???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................
]:[                 @   s   d  d l  Z  d  d l Z d  d l Z d  d l m Z d d d g Z Gd d   d e  Z Gd d   d  Z d d	   Z	 Gd
 d   d  Z
 d d   Z d d   Z Gd d   d e  Z d d   Z d d   Z d d   Z d S)    N)CO_GENERATORBdbQuitBdb
Breakpointc               @   s   e  Z d  Z d S)r   N)__name__
__module____qualname__ r	   r	   (/opt/alt/python35/lib64/python3.5/bdb.pyr   
   s   c               @   s,  e  Z d  Z d d d  Z d d   Z d d   Z d d	   Z d
 d   Z d d   Z d d   Z	 d d   Z
 d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z d  d!   Z d" d#   Z d$ d% d&  Z d d' d(  Z d) d*   Z d+ d,   Z d- d.   Z d d/ d0  Z d1 d2   Z d3 d4   Z d5 d d d6 d7  Z d8 d9   Z d: d;   Z d< d=   Z d> d?   Z  d@ dA   Z! dB dC   Z" dD dE   Z# dF dG   Z$ dH dI   Z% dJ dK   Z& dL dM   Z' dN dO dP  Z( d d dQ dR  Z) d d dS dT  Z* dU dV   Z+ dW dX   Z, d S)Yr   Nc             C   s:   | r t  |  n d  |  _ i  |  _ i  |  _ d  |  _ d  S)N)setskipbreaksfncacheframe_returning)selfr   r	   r	   r
   __init__   s    		zBdb.__init__c             C   so   | d | d d  d k r" | S|  j  j |  } | sk t j j |  } t j j |  } | |  j  | <| S)N<   >)r   getospathabspathnormcase)r   filenamecanonicr	   r	   r
   r      s    zBdb.canonicc             C   s3   d d  l  } | j   d  |  _ |  j d  d   d  S)Nr   )	linecache
checkcachebotframe_set_stopinfo)r   r   r	   r	   r
   reset&   s    
	z	Bdb.resetc             C   s   |  j  r d  S| d k r& |  j |  S| d k rB |  j | |  S| d k r^ |  j | |  S| d k rz |  j | |  S| d k r |  j S| d k r |  j S| d k r |  j St d t |   |  j S)	Nlinecallreturn	exceptionZc_callZc_exceptionZc_returnz*bdb.Bdb.dispatch: unknown debugging event:)quittingdispatch_linedispatch_calldispatch_returndispatch_exceptiontrace_dispatchprintrepr)r   frameeventargr	   r	   r
   r+   ,   s$    	zBdb.trace_dispatchc             C   sA   |  j  |  s |  j |  r: |  j |  |  j r: t  |  j S)N)	stop_here
break_here	user_liner&   r   r+   )r   r.   r	   r	   r
   r'   @   s
    	 zBdb.dispatch_linec             C   s   |  j  d  k r" | j |  _  |  j S|  j |  p= |  j |  sD d  S|  j rd | j j t @rd |  j S|  j	 | |  |  j
 r t  |  j S)N)r   f_backr+   r1   break_anywhere	stopframef_codeco_flagsr   	user_callr&   r   )r   r.   r0   r	   r	   r
   r(   F   s    	 zBdb.dispatch_callc             C   s   |  j  |  s | |  j k r |  j r> | j j t @r> |  j Sz | |  _ |  j | |  Wd  d  |  _ X|  j	 rw t
  |  j | k r |  j d k r |  j d  d   |  j S)Nr   r   )r1   returnframer6   r7   r8   r   r+   r   user_returnr&   r   
stoplinenor    )r   r.   r0   r	   r	   r
   r)   V   s    	
	 zBdb.dispatch_returnc             C   s   |  j  |  ra | j j t @o< | d t k o< | d d  k s |  j | |  |  j r t  n` |  j r | |  j k	 r |  j j j t @r | d t t	 f k r |  j | |  |  j r t  |  j
 S)Nr      )r1   r7   r8   r   StopIterationuser_exceptionr&   r   r6   GeneratorExitr+   )r   r.   r0   r	   r	   r
   r*   f   s     	 		 zBdb.dispatch_exceptionc             C   s.   x' |  j  D] } t j | |  r
 d Sq
 Wd S)NTF)r   fnmatch)r   module_namepatternr	   r	   r
   is_skipped_module   s    zBdb.is_skipped_modulec             C   sk   |  j  r( |  j | j j d   r( d S| |  j k rZ |  j d k rJ d S| j |  j k S|  j sg d Sd S)Nr   Fr   Tr   )r   rD   	f_globalsr   r6   r<   f_lineno)r   r.   r	   r	   r
   r1      s    		zBdb.stop_herec             C   s   |  j  | j j  } | |  j k r( d S| j } | |  j | k rg | j j } | |  j | k rg d St | | |  \ } } | r | j |  _ | r | j	 r |  j
 t | j   d Sd Sd  S)NFT)r   r7   co_filenamer   rF   co_firstlineno	effectivenumberZ	currentbp	temporarydo_clearstr)r   r.   r   linenobpflagr	   r	   r
   r2      s    	zBdb.break_herec             C   s   t  d   d  S)Nz)subclass of bdb must implement do_clear())NotImplementedError)r   r0   r	   r	   r
   rL      s    zBdb.do_clearc             C   s   |  j  | j j  |  j k S)N)r   r7   rG   r   )r   r.   r	   r	   r
   r5      s    zBdb.break_anywherec             C   s   d  S)Nr	   )r   r.   Zargument_listr	   r	   r
   r9      s    zBdb.user_callc             C   s   d  S)Nr	   )r   r.   r	   r	   r
   r3      s    zBdb.user_linec             C   s   d  S)Nr	   )r   r.   Zreturn_valuer	   r	   r
   r;      s    zBdb.user_returnc             C   s   d  S)Nr	   )r   r.   exc_infor	   r	   r
   r?      s    zBdb.user_exceptionr   c             C   s(   | |  _  | |  _ d |  _ | |  _ d  S)NF)r6   r:   r&   r<   )r   r6   r:   r<   r	   r	   r
   r       s    			zBdb._set_stopinfoc             C   s0   | d  k r | j  d } |  j | | |  d  S)Nr   )rF   r    )r   r.   rN   r	   r	   r
   	set_until   s    zBdb.set_untilc             C   sE   |  j  r1 |  j  j } | r1 | j r1 |  j | _ |  j d  d   d  S)N)r   r4   f_tracer+   r    )r   Zcaller_framer	   r	   r
   set_step   s
    	zBdb.set_stepc             C   s   |  j  | d   d  S)N)r    )r   r.   r	   r	   r
   set_next   s    zBdb.set_nextc             C   s=   | j  j t @r& |  j | d  d  n |  j | j |  d  S)Nr   r   )r7   r8   r   r    r4   )r   r.   r	   r	   r
   
set_return   s    zBdb.set_returnc             C   sn   | d  k r t  j   j } |  j   x( | rO |  j | _ | |  _ | j } q( W|  j   t  j |  j  d  S)N)	sys	_getframer4   r!   r+   rT   r   rU   settrace)r   r.   r	   r	   r
   	set_trace   s    
		
zBdb.set_tracec             C   sj   |  j  |  j d  d  |  j sf t j d   t j   j } x( | re | |  j k	 re | ` | j } q> Wd  S)Nr   r   )r    r   r   rX   rZ   rY   r4   rT   )r   r.   r	   r	   r
   set_continue   s    	zBdb.set_continuec             C   s/   |  j  |  _ d  |  _ d |  _ t j d   d  S)NT)r   r6   r:   r&   rX   rZ   )r   r	   r	   r
   set_quit  s    		zBdb.set_quitFc       
      C   s   |  j  |  } d d  l } | j | |  } | sA d | | f S|  j j | g   } | | k ro | j |  t | | | | |  }	 d  S)Nr   zLine %s:%d does not exist)r   r   getliner   
setdefaultappendr   )
r   r   rN   rK   condfuncnamer   r"   listrO   r	   r	   r
   	set_break  s    zBdb.set_breakc             C   sD   | | f t  j k r) |  j | j |  |  j | s@ |  j | =d  S)N)r   bplistr   remove)r   r   rN   r	   r	   r
   _prune_breaks!  s    zBdb._prune_breaksc             C   s   |  j  |  } | |  j k r& d | S| |  j | k rG d | | f Sx/ t j | | f d  d   D] } | j   qe W|  j | |  d  S)NzThere are no breakpoints in %szThere is no breakpoint at %s:%d)r   r   r   re   deleteMerg   )r   r   rN   rO   r	   r	   r
   clear_break'  s    $zBdb.clear_breakc             C   si   y |  j  |  } Wn/ t k
 rD } z t |  SWYd  d  } ~ Xn X| j   |  j | j | j  d  S)N)get_bpbynumber
ValueErrorrM   rh   rg   filer"   )r   r0   rO   errr	   r	   r
   clear_bpbynumber3  s    
zBdb.clear_bpbynumberc             C   sz   |  j  |  } | |  j k r& d | SxC |  j | D]4 } t j | | f } x | D] } | j   qT Wq4 W|  j | =d  S)NzThere are no breakpoints in %s)r   r   r   re   rh   )r   r   r"   ZblistrO   r	   r	   r
   clear_all_file_breaks;  s    zBdb.clear_all_file_breaksc             C   s>   |  j  s d Sx! t j D] } | r | j   q Wi  |  _  d  S)NzThere are no breakpoints)r   r   
bpbynumberrh   )r   rO   r	   r	   r
   clear_all_breaksE  s    	zBdb.clear_all_breaksc             C   s   | s t  d   y t |  } Wn" t  k
 rF t  d |   Yn Xy t j | } Wn" t k
 r| t  d |   Yn X| d  k r t  d |   | S)NzBreakpoint number expectedz Non-numeric breakpoint number %sz!Breakpoint number %d out of rangezBreakpoint %d already deleted)rk   intr   rp   
IndexError)r   r0   rJ   rO   r	   r	   r
   rj   M  s    zBdb.get_bpbynumberc             C   s/   |  j  |  } | |  j k o. | |  j | k S)N)r   r   )r   r   rN   r	   r	   r
   	get_break\  s    zBdb.get_breakc             C   sH   |  j  |  } | |  j k rD | |  j | k rD t j | | f pG g  S)N)r   r   r   re   )r   r   rN   r	   r	   r
   
get_breaksa  s    zBdb.get_breaksc             C   s1   |  j  |  } | |  j k r) |  j | Sg  Sd  S)N)r   r   )r   r   r	   r	   r
   get_file_breaksg  s    zBdb.get_file_breaksc             C   s   |  j  S)N)r   )r   r	   r	   r
   get_all_breaksn  s    zBdb.get_all_breaksc             C   s   g  } | r$ | j  | k r$ | j } x? | d  k	 re | j | | j f  | |  j k rY P| j } q' W| j   t d t |  d  } x2 | d  k	 r | j | j  | j	 f  | j } q W| d  k r t d t |  d  } | | f S)Nr   r   )
tb_frametb_nextr`   rF   r   r4   reversemaxlen	tb_lineno)r   ftstackir	   r	   r
   	get_stackt  s     	
zBdb.get_stackz: c             C   s,  d d  l  } d d  l } | \ } } |  j | j j  } d | | f } | j j rh | | j j 7} n
 | d 7} d | j k r | j d }	 n d  }	 |	 r | | j |	  7} n
 | d 7} d | j k r | j d }
 | d 7} | | j |
  7} | j | | | j	  } | r(| | | j
   7} | S)Nr   z%s(%r)z<lambda>Z__args__z()Z
__return__z->)r   reprlibr   r7   rG   co_namef_localsr-   r^   rE   strip)r   Zframe_linenoZlprefixr   r   r.   rN   r   sargsrvr"   r	   r	   r
   format_stack_entry  s*    


zBdb.format_stack_entryc             C   s   | d  k r! d d  l  } | j } | d  k r3 | } |  j   t | t  r^ t | d d  } t j |  j  z- y t	 | | |  Wn t
 k
 r Yn XWd  d |  _ t j d   Xd  S)Nr   z<string>execT)__main____dict__r!   
isinstancerM   compilerX   rZ   r+   r   r   r&   )r   cmdglobalslocalsr   r	   r	   r
   run  s    	
		zBdb.runc             C   s   | d  k r! d d  l  } | j } | d  k r3 | } |  j   t j |  j  z- y t | | |  SWn t k
 rx Yn XWd  d |  _ t j d   Xd  S)Nr   T)	r   r   r!   rX   rZ   r+   evalr   r&   )r   exprr   r   r   r	   r	   r
   runeval  s    	
		zBdb.runevalc             C   s   |  j  | | |  d  S)N)r   )r   r   r   r   r	   r	   r
   runctx  s    z
Bdb.runctxc             O   sj   |  j    t j |  j  d  } z, y | | |   } Wn t k
 rJ Yn XWd  d |  _ t j d   X| S)NT)r!   rX   rZ   r+   r   r&   )r   funcr   kwdsresr	   r	   r
   runcall  s    
		zBdb.runcall)-r   r   r   r   r   r!   r+   r'   r(   r)   r*   rD   r1   r2   rL   r5   r9   r3   r;   r?   r    rS   rU   rV   rW   r[   r\   r]   rd   rg   ri   rn   ro   rq   rj   rt   ru   rv   rw   r   r   r   r   r   r   r	   r	   r	   r
   r      sV   

c               C   s   t    j   d  S)N)r   r[   r	   r	   r	   r
   r[     s    r[   c               @   s   e  Z d  Z d Z i  Z d g Z d d d d d  Z d d   Z d d	   Z d
 d   Z	 d d d  Z
 d d   Z d d   Z d S)r   r   NFc             C   s   | |  _  d  |  _ | |  _ | |  _ | |  _ | |  _ d |  _ d |  _ d |  _ t	 j
 |  _ t	 j
 d 7_
 |  j j |   | | f |  j k r |  j | | f j |   n |  g |  j | | f <d  S)NTr   r   )rb   func_first_executable_linerl   r"   rK   ra   enabledignorehitsr   nextrJ   rp   r`   re   )r   rl   r"   rK   ra   rb   r	   r	   r
   r     s    									zBreakpoint.__init__c             C   sQ   |  j  |  j f } d  |  j |  j <|  j | j |   |  j | sM |  j | =d  S)N)rl   r"   rp   rJ   re   rf   )r   indexr	   r	   r
   rh   	  s
    zBreakpoint.deleteMec             C   s   d |  _  d  S)NT)r   )r   r	   r	   r
   enable  s    zBreakpoint.enablec             C   s   d |  _  d  S)NF)r   )r   r	   r	   r
   disable  s    zBreakpoint.disablec             C   s/   | d  k r t  j } t |  j   d | d  S)Nrl   )rX   stdoutr,   bpformat)r   outr	   r	   r
   bpprint  s    	zBreakpoint.bpprintc             C   s   |  j  r d } n d } |  j r. | d } n
 | d } d |  j | |  j |  j f } |  j rt | d |  j f 7} |  j r | d |  j f 7} |  j r |  j d k r d	 } n d
 } | d |  j | f 7} | S)Nzdel  zkeep zyes  zno   z%-4dbreakpoint   %s at %s:%dz
	stop only if %sz
	ignore next %d hitsr   r    z"
	breakpoint already hit %d time%s)rK   r   rJ   rl   r"   ra   r   r   )r   Zdispretssr	   r	   r
   r     s$    			
				zBreakpoint.bpformatc             C   s   d |  j  |  j |  j f S)Nzbreakpoint %s at %s:%s)rJ   rl   r"   )r   r	   r	   r
   __str__3  s    zBreakpoint.__str__)r   r   r   r   re   rp   r   rh   r   r   r   r   r   r	   r	   r	   r
   r     s   	c             C   sk   |  j  s# |  j | j k r d Sd S| j j |  j  k r< d S|  j sQ | j |  _ |  j | j k rg d Sd S)NFT)rb   r"   rF   r7   r   r   )br.   r	   r	   r
   checkfuncname8  s    		r   c             C   s   t  j |  | f } x | D] } | j s, q t | |  s> q | j d 7_ | j s | j d k rz | j d 8_ q q | d f Sq yP t | j | j | j	  } | r | j d k r | j d 8_ n
 | d f SWq | d f SYq Xq Wd S)Nr   r   TF)NN)
r   re   r   r   r   ra   r   r   rE   r   )rl   r"   r.   Z	possiblesr   valr	   r	   r
   rI   T  s*    		rI   c               @   s@   e  Z d  Z d d   Z d d   Z d d   Z d d   Z d	 S)
Tdbc             C   s,   | j  j } | s d } t d | |  d  S)Nz???z+++ call)r7   r   r,   )r   r.   r   namer	   r	   r
   r9     s     zTdb.user_callc             C   sz   d d  l  } | j j } | s$ d } |  j | j j  } | j | | j | j  } t d | | j | d | j	    d  S)Nr   z???z+++:)
r   r7   r   r   rG   r^   rF   rE   r,   r   )r   r.   r   r   fnr"   r	   r	   r
   r3     s     zTdb.user_linec             C   s   t  d |  d  S)Nz
+++ return)r,   )r   r.   Zretvalr	   r	   r
   r;     s    zTdb.user_returnc             C   s   t  d |  |  j   d  S)Nz+++ exception)r,   r\   )r   r.   Z	exc_stuffr	   r	   r
   r?     s    zTdb.user_exceptionN)r   r   r   r9   r3   r;   r?   r	   r	   r	   r
   r     s   r   c             C   s1   t  d |  d  t |  d  } t  d |  d  S)Nzfoo()
   zbar returned)r,   bar)nxr	   r	   r
   foo  s    r   c             C   s   t  d |  d  |  d S)Nzbar(r   r=   )r,   )ar	   r	   r
   r     s    r   c              C   s   t    }  |  j d  d  S)Nzimport bdb; bdb.foo(10))r   r   )r   r	   r	   r
   test  s    	r   )rA   rX   r   inspectr   __all__	Exceptionr   r   r[   r   r   rI   r   r   r   r   r	   r	   r	   r
   <module>   s    Z0