+
    i  c                   s.   ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIHtH	t	H
t
 . ROt]]	,          ]
,          t ! R R]4      t]P                  P                   t ! R R	4      t ! R
 R4      tR t ! R R4      tR tR t ! R R]4      tR tR tR tR# )    N)contextmanager)CO_GENERATORCO_COROUTINECO_ASYNC_GENERATORBdbQuitBdb
Breakpointc                   s    ] tR t^tRtR# )r    N)__name__
__module____qualname____firstlineno____static_attributes__r       /usr/lib64/python3.14/bdb.pyr   r      s    r   c                   s  a  ] tR t^t o ]P
                  R]P                  R]P                  R]P                  R]P                  R]P                  R]P                  R]P                  R]P                  R]P                  R]P                  R/t]P
                  ]P                  ,          ]P                  ,          ]P                  ,          ]P                  ,          t]P                  ]P                  ,          ]P                  ,          ]P                  ,          ]P                  ,          tR tR	 tR
 tR tR tR tR tR tR tR tR tR tR tRR lt R t!Rt"V t#R# )_MonitoringTracercalllineZjumpreturnZunwind	exceptionopcodec                s    \         P                  P                  V n        R V n        RV n        RV n        RV n        RV n        R# )Z	bdbtracerNF)	sys
monitoringZDEBUGGER_ID_tool_id_name
_tracefunc_disable_current_event_tracing_thread_enabledself   &r   __init__Z_MonitoringTracer.__init__(   s8    22 
&+##r   c                sl   Wn         \        P                  ! 4       V n        \        P
                  P                  V P                  4      pVf6   \        P
                  P                  V P                  V P                  4       MEW P                  8X  d+   \        P
                  P                  V P                  4       M\        R4      h\        P
                  P                  p^ pV P                  P                  4        Fg  w  rVV P                  \!        W R24      V4      p\        P
                  P#                  V P                  WW4       WSP$                  8w  g   K_  WE,          pKi  	  V P'                  4        \        P
                  P)                  V P                  V P*                  4       RV n        R # )Nz-Another debugger is using the monitoring toolZ	_callbackT)r   	threadingcurrent_threadr   r   r   get_toolr   Zuse_tool_idr   clear_tool_id
ValueErroreventsEVENT_CALLBACK_MAPitemscallback_wrappergetattrZregister_callbackINSTRUCTIONupdate_local_eventsZ
set_eventsGLOBAL_EVENTSr   )r   Z	tracefunc	curr_toolEZ
all_eventseventZcb_nameZcallbacks   &&      r   start_traceZ_MonitoringTracer.start_trace0   s)   #(779NN++DMM:	NN&&t}}djjA**$NN((7LMMNN!!
"55;;=NE,,WTYi;P-QSXYHNN,,T]]EL%#
	 >
 	  "!!$--1C1CDr   c                s<   R V n         RV n        \        P                  P	                  V P
                  4      pWP                  8w  d   R# \        P                  P                  V P
                  4       \        P                  P                  V P
                  4       R# FN)	r   r   r   r   r$   r   r   r%   Zfree_tool_id)r   r/      & r   
stop_traceZ_MonitoringTracer.stop_traceE   sb    #NN++DMM:	

"$$T]]3##DMM2r   c                    R V n         R# TN)r   r   r    r   disable_current_eventZ'_MonitoringTracer.disable_current_eventN   s
    &*#r   c                s    \         P                  P                  V P                  4      V P                  8X  d!   \         P                  P                  4        R # R # N)r   r   r$   r   r   restart_eventsr   r    r   r:   Z _MonitoringTracer.restart_eventsQ   s7    >>""4==1TZZ?NN))+ @r   c                sL   a aa ^ RI pVP                  S4      VVV 3R l4       pV# )r    Nc                  s  < SP                   \        P                  ! 4       8w  d   R #  \        P                  ! 4       P
                  pS! V.V O5!  pSP                  '       d#   VP                  '       d   SP                  4        SP                  '       dV   S\        P                  \        P                  \        P                  39  d"   \        P                  P                  RSn	        # VRSn	        #   \          d7    SP#                  4        R \        P                  ! 4       P
                  n        h i ; i  RSn	        i ; i)NF)r   r"   r#   r   	_getframef_backr   f_tracer-   r   r0   PY_THROW	PY_UNWINDRAISEr   DISABLEZBaseExceptionr5   )argsframeretr1   funcr   s   *  r   wrapperZ3_MonitoringTracer.callback_wrapper.<locals>.wrapperX   s    ##y'?'?'AA4..5(4(===U]]],,.///ajj!++qww%GG>>11 /4+  /4+ ! !15&&.
 /4+s,   AC6 6!C6 AC6 -C6 6AD77D: :	E)	functoolsZwraps)r   rE   r1   rG   rF   s   fff  r   r*   Z"_MonitoringTracer.callback_wrapperU   s(    			4 
	4, r   c                s    V P                  VR R4      pVeQ   WAn        V P                  '       d7   \        P                  P                  V P                  W P                  4       R# R# R# )r   N)r   r=   r   r   r   set_local_eventsr   LOCAL_EVENTS)r   rC   coderB   Zlocal_tracefuncs   &&&* r   call_callbackZ_MonitoringTracer.call_callbackq   sP    //%>&+M}}}//tEVEVW  'r   c                sT    VP                   '       d   VP                  VR V4       R# R# r   Nr=   )r   rC   rJ   offsetretvals   &&&&&r   return_callbackZ!_MonitoringTracer.return_callbackx   s     ===MM%62 r   c                sT    VP                   '       d   VP                  VR R4       R# R# rL   rM   r   rC   rJ   rB      &&&*r   unwind_callbackZ!_MonitoringTracer.unwind_callback|   s     ===MM%40 r   c                |    VP                   '       d*   VP                  '       d   VP                  VR R4       R# R# R# r   N)r=   f_trace_linesrQ   rR   r   line_callbackZ_MonitoringTracer.line_callback   s-    ===U000MM%. 1=r   c                s@   WC8  d   \         P                  P                  # V P                  W#4      pV P                  W$4      pWV8w  d   \         P                  P                  # VP                  '       d*   VP
                  '       d   VP	                  VR R4       R# R# R# rU   )r   r   rA   _get_linenor=   rV   )r   rC   rJ   Zinst_offsetZdest_offsetZinst_linenoZdest_linenos   &&&&&  r   jump_callbackZ_MonitoringTracer.jump_callback   sy    $>>)))&&t9&&t9%>>)))===U000MM%. 1=r   c                st   VP                   '       d   VP                  '       dj   \        VP                  R 4      '       dN   VP                  pV'       d:   VP                  P                  P                  R4      V J d   R# VP                  pKA  VP                  VR\        V4      WDP                  34       R# R# )tb_framer   Nr   )r=   Z__traceback__ZhasattrrZ   f_localsgettb_nextZtype)r   rC   rJ   rN   ZexcZtbs   &&&&& r   exception_callbackZ$_MonitoringTracer.exception_callback   s    ===   WS->->
%K%K&&{{++//74?BMM%tCy#?P?P.QR r   c                rT   )r   N)r=   f_trace_opcodes)r   rC   rJ   rN      &&&&r   opcode_callbackZ!_MonitoringTracer.opcode_callback   s-    ===U222MM%40 3=r   Nc                s   \         P                  P                  V P                  4      V P                  8w  d   R # Vf    \         P
                  ! 4       P                  pVe   VP                  ev   VP                  '       d#   V P                  \        P                  ,          pMV P                  p\         P                  P                  V P                  VP                  V4       VP                  pK  R # r9   )r   r   r$   r   r   r;   r<   r=   r_   rI   r0   r,   rH   f_code)r   rC   r'      && r   r-   Z%_MonitoringTracer.update_local_events   s    >>""4==1TZZ?=MMO**E}}((((!..>F!..F//u||VTLLE  r   c                s^    ^ RI pRpVP                  V4       F  w  rVW%8  d   Vu # TpK  	  V# r    N)disZfindlinestarts)r   rJ   rN   re   Zlast_linenoZstartlinenos   &&&    r   rX   Z_MonitoringTracer._get_lineno   s9     //5ME~"" K 6 r   )r   r   r   r   r   r   r9   )$r	   r
   r   r   r0   ZPY_STARTZ	PY_RESUMEr>   ZLINEZJUMPZ	PY_RETURNZPY_YIELDr?   r@   ZSTOP_ITERATIONr,   r(   r.   rI   r!   r2   r5   r8   r:   r*   rK   rP   rS   rW   rY   r^   ra   r-   rX   r   __classdictcell__Z__classdict__   @r   r   r      s!    	

F	V	

F			X	

H	X		+	x JJ,qzz9AKKG!''QM66AFF?Q[[01::=@P@PPL*3+,8X31//S1! r   r   c                   s  a  ] tR t^t o R:R ltR tR tR tR t]	R 4       t
R tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR;R ltR tR<R ltR t R t!R t"R  t#R<R! lt$R" t%R# t&R$ t'R=R% lt(R& t)R' t*R( t+R) t,R* t-R+ t.R, t/R- t0R. t1R/ t2R0 t3R1 t4R>R2 lt5R3 t6R4 t7R?R5 lt8R?R6 lt9R7 t:R8 t;R9t<V t=R# )@r   Nc                st   V'       d   \        V4      MR V n        / V n        / V n        / V n        R V n        RV n        R V n        R V n        R V n	        \        P                  ! 4       V n        W n        VR8X  d   \        4       V n        MVR8X  d	   R V n        M\!        RV R24      hV P#                  4        R # )NFr   settracezInvalid backend 'Z')setskipbreaksfncacheframe_trace_lines_opcodesframe_returningtrace_opcodes
enterframecmdframe	cmdlinenoweakrefZWeakKeyDictionarycode_linenosbackendr   monitoring_tracerr&   _load_breaks)r   rl   rw      &&&r   r!   ZBdb.__init__   s    !%CI4	)+&#"#557l"%6%8D"
"%)D"0	;<<r   c                s   VR V^R ,           R,           8X  d   V# V P                   P                  V4      pV'       gM   \        P                  P	                  V4      p\        P                  P                  V4      pW P                   V&   V# )Z<Z>)rn   r\   osZpathZabspathZnormcase)r   filenamecanonicrc   r   r~   ZBdb.canonic   so     sXa^+c11O,,""8,ggooh/Ggg&&w/G%,LL"r   c                s    V P                   '       d(   V P                   P                  V P                  4       R # \        P                  ! V P                  4       R # r9   )rx   r2   trace_dispatchr   rj   r   r    r   r2   ZBdb.start_trace   s:    !!!""..t/B/BCLL,,-r   c                s    V P                   '       d   V P                   P                  4        R # \        P                  ! R 4       R # r9   )rx   r5   r   rj   r   r    r   r5   ZBdb.stop_trace   s,    !!!""--/LLr   c                s`    ^ RI pVP                  4        RV n        V P                  RR4       R# rd   )	linecacheZ
checkcachebotframe_set_stopinfo)r   r   r4   r   resetZ	Bdb.reset   s(    4&r   c              #  s0   "   Wn         R x  R V n         R # 5ir9   )rr   r   rC      &&r   set_enterframeZBdb.set_enterframe   s     s   c                s   V P                  V4      ;_uu_ 4        V P                  '       d    R R R 4       R # VR8X  d   V P                  V4      uuR R R 4       # VR8X  d   V P                  W4      uuR R R 4       # VR8X  d   V P	                  W4      uuR R R 4       # VR8X  d   V P                  W4      uuR R R 4       # VR8X  d   V P                  uuR R R 4       # VR8X  d   V P                  uuR R R 4       # VR8X  d   V P                  uuR R R 4       # VR8X  d   V P                  W4      uuR R R 4       # \        R	\        V4      4       V P                  uuR R R 4       #   + '       g   i     R # ; i)
Nr   r   r   r   Zc_callZc_exceptionZc_returnr   z*bdb.Bdb.dispatch: unknown debugging event:)
r   quittingdispatch_linedispatch_calldispatch_returndispatch_exceptionr   dispatch_opcodeprintrepr)r   rC   r1   argr`   r   r   ZBdb.trace_dispatch  sA   2   ''}}} (' ))%0	 ('
 ))%5 ('  ++E7 (' #..u: ('  ** (' %** (' 
"**! ('"  ++E7% ('& >UL&&) ('''s@   E$E$E$<E$E$ E$E$:E$E$9 E$$E5	c                s   V P                  V4      '       g   V P                  V4      '       ds   V P                  V8X  d   V P                  VP                  8X  gG   V P                  V4       V P                  4        V P                  '       d   \        h V P                  # V P                  VP                  P                  VP                  4      '       g   V P                  4        V P                  # r9   )	stop_here
break_herers   rt   f_lineno	user_liner:   r   r   	get_breakrb   co_filenamer8   r   r   r   r   r   ZBdb.dispatch_line0  s     NN5!!T__U%;%;MMU"t~~'GNN5!!}}}Gm} """  8 8%..II&&("""r   c                s   V P                   f   VP                  V n         V P                  # V P                  V4      '       g*   V P	                  V4      '       g   V P                  4        R # V P                  '       d4   VP                  P                  \        ,          '       d   V P                  # V P                  W4       V P                  4        V P                  '       d   \        hV P                  # r9   )r   r<   r   r   break_anywherer8   	stopframerb   co_flagsGENERATOR_AND_COROUTINE_FLAGS	user_callr:   r   r   r   rC   r   rz   r   r   ZBdb.dispatch_callD  s     == !LLDM&&&u%%)<)<U)C)C &&(>>>ell336SSS&&&u"===-"""r   c                sd   V P                  V4      '       g   WP                  8X  d   V P                  '       dE   VP                  P                  \
        ,          '       d   V P                  V4       V P                  #  Wn        V P                  W4       V P                  4        R V n        V P                  '       d   \        hV P                  VJ d$   V P                  R8w  d   V P                  R R 4       V P                  R8w  d   V P                  V4       V P                  #   R T n        i ; i)Nr{   )r   returnframer   rb   r   r   _set_caller_tracefuncr   rp   user_returnr:   r   r   
stoplinenor   r   rz   r   r   ZBdb.dispatch_return`  s     >>%  E-=-=$=~~~%,,"7"7:W"W"W **51***,',$  ,##%'+$}}}Gm~~&4??b+@""4. "$**51""" (,$s   ?'D& &	D/c                s   V P                  V4      '       d   VP                  P                  \        ,          '       d   V^ ,          \        J d   V^,          e:   V P                  W4       V P                  4        V P                  '       d   \        hV P                  # V P                  '       d   WP                  Jd   V P                  P                  P                  \        ,          '       dR   V^ ,          \        \        39   d:   V P                  W4       V P                  4        V P                  '       d   \        hV P                  # )r    )r   rb   r   r   ZStopIterationuser_exceptionr:   r   r   r   ZGeneratorExitr   r   rz   r   r   ZBdb.dispatch_exception  s     >>%   LL)),IIIA-/CFN##E/##%===- """ nnnnn!<NN))225RRRF}m<<+!}}}Gm"""r   c                s    V P                  V4       V P                  4        V P                  '       d   \        hV P                  # r9   )user_opcoder:   r   r   r   r   rz   r   r   ZBdb.dispatch_opcode  s7     	===-"""r   c                sv    Vf   R# V P                    F"  p\        P                  ! W4      '       g   K!   R# 	  R# )NFT)rl   fnmatch)r   Zmodule_nameZpatternrc   r   is_skipped_moduleZBdb.is_skipped_module  s0    yyG{44 ! r   c                s,   V P                   '       d3   V P                  VP                  P                  R 4      4      '       d   R# WP                  J d-   V P
                  R8X  d   R# VP                  V P
                  8  # V P                  '       g   R# R# )r	   FTr{   )rl   r   	f_globalsr\   r   r   r   r   r   r   r   ZBdb.stop_here  sk     999%%eoo&9&9*&EFFNN""$>>T__44~~~r   c                s   V P                  VP                  P                  4      pW P                  9  d   R # VP                  pW0P                  V,          9  d0   VP                  P
                  pW0P                  V,          9  d   R # \        W#V4      w  rEV'       dR   VP                  V n        V'       d7   VP                  '       d%   V P                  \        VP                  4      4       R# R # FT)r~   rb   r   rm   r   co_firstlineno	effectivenumber	currentbp	temporarydo_clearstr)r   rC   r}   rf   bpZflag   &&    r   r   ZBdb.break_here  s     << 8 89;;&X.. \\00F[[22 x7
YYDNc"))n-r   c                s    \        R 4      h)z)subclass of bdb must implement do_clear())ZNotImplementedError)r   r   r   r   r   ZBdb.do_clear  s    
 ""MNNr   c                s    V P                  VP                  P                  4      pW P                  9  d   R # V P                  V,           F  pV P	                  W14      '       g   K   R# 	  R # r   )r~   rb   r   rm   _lineno_in_frame)r   rC   r}   rf      &&  r   r   ZBdb.break_anywhere  sX     << 8 89;;&kk(++F$$V33 , r   c                s    VP                   pWP                  8  d   R # W0P                  9  d.   \        R VP	                  4        4       4      V P                  V&   WP                  V,          9   # )Fc              3   s,   "   T F
  w   rVx  K  	  R # 5ir9   r   )Z.0Z_rf      &  r   Z	<genexpr>Z'Bdb._lineno_in_frame.<locals>.<genexpr>  s     )U_\Q&_s   )rb   r   rv   rk   Zco_lines)r   rf   rC   rJ      &&& r   r   ZBdb._lineno_in_frame  s]     ||'''(((&))UT]]_)U&UDd#**4000r   c                    R # r9   r   )r   rC   Zargument_listrz   r   r   ZBdb.user_call      r   c                r   r9   r   r   r   r   r   ZBdb.user_line  r   r   c                r   r9   r   )r   rC   Zreturn_valuerz   r   r   ZBdb.user_return	  r   r   c                r   r9   r   )r   rC   Zexc_inforz   r   r   ZBdb.user_exception  r   r   c                r   r9   r   r   r   r   r   ZBdb.user_opcode  r   r   c                s    WP                   8w  dk   Wn         V P                  pVe%   Wn        W P                  J d   MVP                  pK(  V P
                  '       d   V P
                  P                  4        R # R # R # r9   )rq   rr   r_   r   r<   rx   r-   )r   rq   rC   rc   r   _set_trace_opcodesZBdb._set_trace_opcodes  sg    ...!.OOE#(5%MM)%%%&&::< & /r   c                sr    Wn         W n        R V n        W0n        WPn        W`n        V P                  V4       R# r3   )r   r   r   r   rs   rt   r   )r   r   r   r   r   rs   rt   s   &&&&&&&r   r   ZBdb._set_stopinfo!  s7     #& % !"'r   c                s    VP                   pV'       d9   VP                  '       g%   W P                  Jd   V P                  Vn        R # R # R # R # r9   )r<   r=   r   r   )r   Zcurrent_frameZcaller_framerc   r   r   ZBdb._set_caller_tracefunc5  s?     %++ 4 4 4]]9Z#'#6#6L  :[ 4<r   c                sX    Vf   VP                   ^,           pV P                  WV4       R # r9   )r   r   )r   rC   rf   rz   r   	set_untilZBdb.set_untilB  s'     >^^a'F50r   c           
     sn    V P                  R R V P                  \        V P                  RR 4      R7       R # )Nr   rs   rt   )r   rr   r+   r   r    r   set_stepZBdb.set_stepJ  s2     	4%,T__j$%O 	 	Qr   c                s.    V P                  R R RR7       R # )NT)r   )r   r   r    r   set_stepinstrZBdb.set_stepinstrP  s    4d3r   c                sB    V P                  VR WP                  R7       R # )Nr   )r   r   r   r   r   set_nextZBdb.set_nextT  s    5$..Qr   c                s    VP                   P                  \        ,          '       d   V P                  WR4       R# V P                  VP                  V4       R# )   Nr{   )rb   r   r   r   r<   r   r   r   
set_returnZBdb.set_returnX  s<    <<  #@@@uR0u||U3r   c                s   V P                  4        Vf    \        P                  ! 4       P                  pV P	                  4        V P                  V4      ;_uu_ 4        V'       dR   V P                  Vn        Wn        VP                  VP                  3V P                  V&   RVn	        VP                  pKY  V P                  4        R V n        R R R 4       V P                  4        R #   + '       g   i     L"; iNT)r5   r   r;   r<   r   r   r   r=   r   rV   r_   ro   r   rr   r2   r   r   r   	set_traceZBdb.set_trace_  s    
 	=MMO**E

  '' $ 3 3 %9>9L9LeNcNc8d..u5&*# "DO ( 	 ('s   C(&A(C((C8	c                s   V P                  V P                  R R4       V P                  '       g   V P                  4        \        P
                  ! 4       P                  pV'       d    WP                  Jd   V=VP                  pK'  V P                  P                  4        F  w  pw  r#W#uVn
        Vn        K  	  V P                  R8X  d   V P                  P                  4        / V n        R # R # )Nr   r{   )r   r   rm   r5   r   r;   r<   r=   ro   r)   rV   r_   rw   rx   r-   )r   rC   Ztrace_linesrq      &   r   set_continueZBdb.set_continuet  s     	4==$3{{{OOMMO**EE6M7;7U7U7[7[7]33=H:#U%: 8^|||+&&::<-/D* r   c                sd    V P                   V n        R V n        RV n        V P	                  4        R # r   )r   r   r   r   r5   r   r    r   set_quitZBdb.set_quit  s(    
 r   c                sp    V P                   P                  V. 4      pW#9  d   VP                  V4       R # R # r9   )rm   Z
setdefaultappend)r   r}   rf   Z
bp_linenosr   r   _add_to_breaksZBdb._add_to_breaks  s1    [[++Hb9
#f% $r   c                sF   V P                  V4      p^ RIpVP                  W4      pV'       g   RW3,          # V P                  W4       \	        WW4V4      pV P
                  p	V	'       d7   V P                  V	4      '       d   V P                  V	n        V	P                  p	K>  R# )r    NzLine %s:%d does not exist)
r~   r   getliner   r   rr   r   r   r=   r<   )
r   r}   rf   r   condfuncnamer   r   r   rC   s
   &&&&&&    r   	set_breakZBdb.set_break  s     <<)  2.(1CCCH-)8D ""5)) $ 3 3LLEr   c                sv    \         P                  P                  4        F  w  rV P                  W4       K  	  R # r9   )r   bplistZkeysr   r   r}   rf   r   r   ry   ZBdb._load_breaks  s.     #-"3"3"8"8":X1 #;r   c                s    W3\         P                  9  d#   V P                  V,          P                  V4       V P                  V,          '       g   V P                  V R # R # r9   )r   r   rm   remover   rz   r   _prune_breaksZBdb._prune_breaks  sL     Z%6%66KK!((0{{8$$H% %r   c                s*   V P                  V4      pWP                  9  d
   R V,          # W P                  V,          9  d   RW3,          # \        P                  W3,          R,           F  pVP	                  4        K  	  V P                  W4       R# )There are no breakpoints in %szThere is no breakpoint at %s:%d:NNNN)r~   rm   r   r   deleteMer   )r   r}   rf   r   r   r   clear_breakZBdb.clear_break  s    
 <<);;&3h>>X..47III ##H$45a88BKKM 98,r   c                s     V P                  V4      pTP                  4        T P	                  TP
                  TP                  4       R #   \         d   p\        T4      u R p?# R p?ii ; ir9   )get_bpbynumberr&   r   r   r   filer   )r   r   r   Zerrr   r   clear_bpbynumberZBdb.clear_bpbynumber  sX    
	$$S)B 	277BGG,	  	s8O	s   A A+
A& A+&A+c                s
   V P                  V4      pWP                  9  d
   R V,          # V P                  V,           F4  p\        P                  W3,          pV F  pVP	                  4        K  	  K6  	  V P                  V R# )r   N)r~   rm   r   r   r   )r   r}   r   Zblistr   s   &&   r   clear_all_file_breaksZBdb.clear_all_file_breaks  ss    
 <<);;&3h>>KK))D%%hn5E  * KK!r   c                s    V P                   '       g   R # \        P                   F  pV'       g   K  VP                  4        K  	  / V n         R# )zThere are no breakpointsN)rm   r   
bpbynumberr   )r   r   r4   r   clear_all_breaksZBdb.clear_all_breaks  s:    
 {{{-''Br ( r   c                s(   V'       g   \        R 4      h \        V4      p \        P                  T,          pTf   \        RT,          4      hT#   \          d    \        RT,          4      Rhi ; i  \         d    \        RT,          4      Rhi ; i)zBreakpoint number expectedz Non-numeric breakpoint number %sNz!Breakpoint number %d out of rangezBreakpoint %d already deleted)r&   Zintr   r   Z
IndexError)r   r   r   r   r   r   r   ZBdb.get_bpbynumber	  s     9::	QXF	U&&v.B :<vEFF	  	Q?#EFDP	Q  	U@6IJPTT	Us   A A2 A/2Bc                sz    V P                  V4      pWP                  9   ;'       d    W P                  V,          9   # r9   r~   rm   r   rz   r   r   ZBdb.get_break  s8    <<);;& , ,kk(++	,r   c                s    V P                  V4      pWP                  9   ;'       d>    W P                  V,          9   ;'       d!    \        P                  W3,          ;'       g    . # r9   )r~   rm   r   r   r   rz   r   
get_breaksZBdb.get_breaks#  sb    
 <<);;& 0 0kk(++0 0h./6 635	6r   c                sn    V P                  V4      pWP                  9   d   V P                  V,          # . # r9   r   )r   r}   r   r   get_file_breaksZBdb.get_file_breaks-  s0    
 <<){{";;x((Ir   c                s    V P                   # r9   )rm   r   r    r   get_all_breaksZBdb.get_all_breaks8  s    {{r   c                s   . pV'       d   VP                   VJ d   VP                  pVe;   VP                  WP                  34       WP                  J d   MVP
                  pK>  VP                  4        \        ^ \        V4      ^,
          4      pVe6   VP                  VP                   VP                  34       VP                  pK9  Vf   \        ^ \        V4      ^,
          4      pW43# r9   )
rZ   r]   r   r   r   r<   ZreverseZmaxZlenZ	tb_lineno)r   ZftZstackZis   &&&  r   	get_stackZBdb.get_stack?  s     q		AmLL!ZZ)MM!A3u:>"mLL!**akk23		A9As5zA~&Axr   c                s>   ^ RI p^ RIpVw  rVV P                  VP                  P                  4      pV: RV: R2pVP                  P
                  '       d   WP                  P
                  ,          pM	VR,          pVR,          pRVP                  9   d4   VP                  R,          p	VR,          pWP                  V	4      ,          pVeD   VP                  WvVP                  4      p
V
'       d   WV
P                  4       ,           ,          pV# W R2,          pV# )	r    NZ()z<lambda>z()Z
__return__z->zWarning: lineno is None)r   reprlibr~   rb   r   co_namer[   r   r   r   strip)r   Zframe_linenoZlprefixr   r   rC   rf   r}   sZrvr   s   &&&        r   format_stack_entryZBdb.format_stack_entryV  s     	"$<< 8 89 &)<<%%%AOA	T	5>>)-BIAb!!A$$XuGDtzz|++  9344Ar   c                `    V P                   R 8X  d   V P                  P                  4        R# R# r   N)rw   rx   r8   r   r    r   r8   ZBdb.disable_current_eventt  s%    <<<'""88: (r   c                r   r   )rw   rx   r:   r   r    r   r:   ZBdb.restart_eventsy  s%    <<<'""113 (r   c                sb   Vf   ^ R I pVP                  pVf   TpV P                  4        \        V\        4      '       d   \        VRR4      pV P                  4         \        WV4       RV n	        V P                  4        R #   \         d     L&i ; i  RT n	        T P                  4        i ; i)Nz<string>execT)__main____dict__r   Z
isinstancer   Zcompiler2   r   r   r   r5   )r   cmdglobalslocalsr      &&&& r   runZBdb.run  s    
 ?''G>F

c3#z62C	v& !DMOO	  		 !DMOOs$   B BB BB B.c                sL   Vf   ^ R I pVP                  pVf   TpV P                  4        V P                  4         \	        WV4      RV n        V P                  4        #   \         d     Mi ; i RT n        T P                  4        R #   RT n        T P                  4        i ; ir   )r   r   r   r2   evalr   r5   r   )r   Zexprr   r   r   r   r   runevalZBdb.runeval  s    
 ?''G>F

	v. !DMOO	  		 DMOO !DMOOs#   A A-*B
 ,A--B
 
B#c                s*    V P                  WV4       R # r9   )r   )r   r   r   r   r`   r   runctxZ
Bdb.runctx  s     	v&r   c               s    V P                  4        V P                  4        R p V! V/ VB pRV n        V P	                  4        V#   \         d     L&i ; i  RT n        T P	                  4        i ; ir   )r   r2   r   r   r5   )r   rE   rB   ZkwdsZress   ""*, r   runcallZBdb.runcall  sr    
 	

	%%C !DMOO
  		 !DMOOs#   A AA AA A/)rw   r   rm   rs   rt   rv   r   rr   rn   rp   ro   rx   r   r   rl   r   r   rq   )Nrj   )r    FNNr9   FNN)z: NN)>r	   r
   r   r   r!   r~   r2   r5   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   ry   r   r   r   r   r   r   r   r   r   r   r   r   r8   r:   r   r   r   r   r   rg   rh   ri   r   r   r      s0    *".'  
-'^#(#8#>#:#&6O	1
=((71Q4R4*0("&0	2&"(,6	.<;
4,(' r   c                  s6    \        4       P                  4        R # r9   )r   r   r   r   r   r   r     s    EOOr   c                   sp   a  ] tR tRt o ^t/ tR.tRR lt]R 4       t	R t
R tR tRR ltR	 tR
 tRtV tR# )r   i  Nc                s   WPn         R V n        Wn        W n        W0n        W@n        RV n        ^ V n        ^ V n        \        P                  V n        \        ;P                  ^,          un
        V P                  P                  V 4       W3V P                  9   d&   V P                  W3,          P                  V 4       R # V .V P                  W3&   R # r   )r   func_first_executable_liner   r   r   r   enabledignorehitsr   nextr   r   r   r   )r   r   r   r   r   r   s   &&&&&&r   r!   ZBreakpoint.__init__  s     *.'		"		 oo1t$<4;;&KK
#**40'+fDKK
#r   c                 sJ    ^\         n        / \         n        R.\         n        R# )r   N)r   r   r   r   r   r   r   clearBreakpointsZBreakpoint.clearBreakpoints  s    

!%
r   c                s    V P                   V P                  3pR V P                  V P                  &   V P                  V,          P                  V 4       V P                  V,          '       g   V P                  V R # R # r9   )r   r   r   r   r   r   )r   Zindexr4   r   r   ZBreakpoint.deleteMe  s_     DII&'+$E!!$'{{5!!E" "r   c                r6   r7   r   r   r    r   enableZBreakpoint.enable  s	    r   c                r6   r3   r   r   r    r   disableZBreakpoint.disable  s	    r   c                sd    Vf   \         P                  p\        V P                  4       VR7       R # )N)r   )r   Zstdoutr   bpformat)r   Zoutr   r   bpprintZBreakpoint.bpprint  s"     ;**CdmmoC(r   c                s   V P                   '       d   R pMRpV P                  '       d   VR,           pM	VR,           pRV P                  VV P                  V P                  3,          pV P
                  '       d   VRV P
                  : 2,          pV P                  '       d   VRV P                  3,          ,          pV P                  '       d3   V P                  ^8  d   RpMRpVR	V P                  V3,          ,          pV# )
zdel  zkeep zyes  zno   z%-4dbreakpoint   %s at %s:%dz
	stop only if z
	ignore next %d hitsr   Z z"
	breakpoint already hit %d time%s)r   r   r   r   r   r   r   r   )r   ZdisprD   Zssr   r   r   ZBreakpoint.bpformat  s     >>>DD<<<'>D'>D,T04		4990F F999DII77C;;;,~==C999yy1}9TYYOKKC
r   c                sZ    R V P                   : RV P                  : RV P                  : 2# )zbreakpoint z at :)r   r   r   r   r    r   __str__ZBreakpoint.__str__=  s    +/;;		499MMr   )
r   r   r   r   r   r   r   r   r   r   r   r9   )r	   r
   r   r   r   r   r   r!   Zstaticmethodr   r   r   r   r   r   r   r   rg   rh   ri   r   r   r     sV     * DFJ-( ' '
#)<N Nr   c                 s6   V P                   '       g    V P                  VP                  8w  d   R # R# VP                  P                  V P                   8w  d   R # V P
                  '       g   VP                  V n        V P
                  VP                  8w  d   R # R# r   )r   r   r   rb   r   r   )brC   r   r   checkfuncnamer   D  sr     :::66U^^#  ||qzz) '''',~~$##u~~5r   c                 s6   \         P                  W3,          pV F  pVP                  '       g   K  \        WB4      '       g   K*  V;P                  ^,          un        VP
                  '       g3   VP                  ^ 8  d   V;P                  ^,          un        K  VR3u #  \        VP
                  VP                  VP                  4      pV'       d3   VP                  ^ 8  d   V;P                  ^,          un        K  VR3u # K  	  R#    TR3u u # ; i)r   TFr   )
r   r   r   r   r   r   r   r   r   r[   )r   r   rC   Z	possiblesr   Zvals   &&&   r   r   r   d  s     !!$*-IyyyQ&&	!vvvxx!|A 4y 
"1665??ENNCxx!|A !"4y( + D " 5z!s   #ADDDc                   s8   a  ] tR tRt o R tR tR tR tRtV t	R# )Tdbi  c                s^    VP                   P                  pV'       g   R p\        RW24       R# )???z+++ callN)rb   r   r   )r   rC   rB   namer   r   r   ZTdb.user_call  s"    ||##ETj$%r   c           	     s2   ^ RI pVP                  P                  pV'       g   RpV P                  VP                  P                  4      pVP                  WAP                  VP                  4      p\        RWAP                  VRVP                  4       4       R# )r    Nr  z+++r   )
r   rb   r   r~   r   r   r   r   r   r   )r   rC   r   r  Zfnr   r   r   r   ZTdb.user_line  sg    ||##ET\\%,,223  ^^U__EeRsDJJLAr   c                s    \        R V4       R# )z
+++ returnNr   )r   rC   rO   rz   r   r   ZTdb.user_return  s    lF#r   c                s>    \        R V4       V P                  4        R# )z+++ exceptionN)r   r   )r   rC   Z	exc_stuffrz   r   r   ZTdb.user_exception  s    oy)r   r   N)
r	   r
   r   r   r   r   r   r   r   rg   rh   ri   r   r   r     s     &B$ r   r   c                 s\    \        R V R4       \        V ^
,          4      p\        RV4       R# )zfoo(r   zbar returnedN)r   bar)ZnZxr4   r   foor    s%    	&!SAbD	A	.!r   c                 s.    \        R V R4       V ^,          # )zbar(r   r  )Zar    r   r  r    s    	&!SQ3Jr   c                  s<    \        4       p V P                  R 4       R# )zimport bdb; bdb.foo(10)N)r   r   )r   s    r   testr    s    AEE
#$r   )r   r   r   )r   r   r"   r|   ru   Z
contextlibr   Zinspectr   r   r   Z__all__r   Z	Exceptionr   r   r'   r0   r   r   r   r   r   r   r   r  r  r  r   r   r   <module>r     s     
  	  % B B
* ,| ;>P P +i + NN[ [|N Nb
uN uNt@0j# $
%r   