grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026 й¼]:[ã@sáddlZddlZddlZddlmZdddgZGdd„deƒZGdd„dƒZdd „Z Gd d„dƒZ d d „Z d d„Z Gdd„deƒZ dd„Zdd„Zdd„ZdS)éN)Ú CO_GENERATORÚBdbQuitÚBdbÚ Breakpointc@seZdZdS)rN)Ú__name__Ú __module__Ú __qualname__©r r ú(/opt/alt/python35/lib64/python3.5/bdb.pyr s c@s,eZdZddd„Zdd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%d&„Zdd'd(„Zd)d*„Zd+d,„Zd-d.„Zdd/d0„Zd1d2„Zd3d4„Zd5ddd6d7„Zd8d9„Zd:d;„Zd<d=„Zd>d?„Z d@dA„Z!dBdC„Z"dDdE„Z#dFdG„Z$dHdI„Z%dJdK„Z&dLdM„Z'dNdOdP„Z(dddQdR„Z)dddSdT„Z*dUdV„Z+dWdX„Z,dS)YrNcCs:|rt|ƒnd|_i|_i|_d|_dS)N)ÚsetÚskipÚbreaksÚfncacheÚframe_returning)Úselfr r r r Ú__init__s  z Bdb.__init__cCso|d|dd…dkr"|S|jj|ƒ}|sktjj|ƒ}tjj|ƒ}||j|<|S)Nú<éú>éÿÿÿÿ)rÚgetÚosÚpathÚabspathÚnormcase)rÚfilenameÚcanonicr r r rs z Bdb.canoniccCs3ddl}|jƒd|_|jddƒdS)Nr)Ú linecacheÚ checkcacheÚbotframeÚ _set_stopinfo)rrr r r Úreset&s   z Bdb.resetcCsÍ|jr dS|dkr&|j|ƒS|dkrB|j||ƒS|dkr^|j||ƒS|dkrz|j||ƒS|dkr�|jS|dkr |jS|dkr³|jStdt|ƒƒ|jS) NÚlineÚcallÚreturnÚ exceptionZc_callZ c_exceptionZc_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$         zBdb.trace_dispatchcCsA|j|ƒs|j|ƒr:|j|ƒ|jr:t‚|jS)N)Ú stop_hereÚ break_hereÚ user_liner&rr+)rr.r r r r'@s   zBdb.dispatch_linecCsŠ|jdkr"|j|_|jS|j|ƒp=|j|ƒsDdS|jrd|jjt@rd|jS|j ||ƒ|j rƒt ‚|jS)N) rÚf_backr+r1Úbreak_anywhereÚ stopframeÚf_codeÚco_flagsrÚ user_callr&r)rr.r0r r r r(Fs  zBdb.dispatch_callc Cs¬|j|ƒs||jkr¥|jr>|jjt@r>|jSz||_|j||ƒWdd|_X|j rwt ‚|j|kr¥|j dkr¥|j ddƒ|jS)Nrr) r1Ú returnframer6r7r8rr+rÚ user_returnr&rÚ stoplinenor )rr.r0r r r r)Vs   zBdb.dispatch_returncCsÈ|j|ƒra|jjt@o<|dtko<|ddksÁ|j||ƒ|jrÁt‚n`|jrÁ||jk rÁ|jjjt@rÁ|dtt fkrÁ|j||ƒ|jrÁt‚|j S)Nré) r1r7r8rÚ StopIterationÚuser_exceptionr&rr6Ú GeneratorExitr+)rr.r0r r r r*fs   zBdb.dispatch_exceptioncCs.x'|jD]}tj||ƒr dSq WdS)NTF)r Úfnmatch)rÚ module_nameÚpatternr r r Úis_skipped_moduleszBdb.is_skipped_modulecCsk|jr(|j|jjdƒƒr(dS||jkrZ|jdkrJdS|j|jkS|jsgdSdS)NrFrTr)r rDÚ f_globalsrr6r<Úf_lineno)rr.r r r r1…s  z Bdb.stop_herecCsÂ|j|jjƒ}||jkr(dS|j}||j|krg|jj}||j|krgdSt|||ƒ\}}|rº|j|_|r¶|j r¶|j t |jƒƒdSdSdS)NFT) rr7Ú co_filenamer rFÚco_firstlinenoÚ effectiveÚnumberZ currentbpÚ temporaryÚdo_clearÚstr)rr.rÚlinenoÚbpÚflagr r r r2“s   zBdb.break_herecCstdƒ‚dS)Nz)subclass of bdb must implement do_clear())ÚNotImplementedError)rr0r r r rL©sz Bdb.do_clearcCs|j|jjƒ|jkS)N)rr7rGr )rr.r r r r5¬szBdb.break_anywherecCsdS)Nr )rr.Z argument_listr r r r9²sz Bdb.user_callcCsdS)Nr )rr.r r r r3·sz Bdb.user_linecCsdS)Nr )rr.Z return_valuer r r r;»szBdb.user_returncCsdS)Nr )rr.Úexc_infor r r r?¿szBdb.user_exceptionrcCs(||_||_d|_||_dS)NF)r6r:r&r<)rr6r:r<r r r r Äs   zBdb._set_stopinfocCs0|dkr|jd}|j|||ƒdS)Nr)rFr )rr.rNr r r Ú set_untilÏs  z Bdb.set_untilcCsE|jr1|jj}|r1|j r1|j|_|jddƒdS)N)rr4Úf_tracer+r )rZ caller_framer r r Úset_step×s    z Bdb.set_stepcCs|j|dƒdS)N)r )rr.r r r Úset_nextãsz Bdb.set_nextcCs=|jjt@r&|j|ddƒn|j|j|ƒdS)Nrr)r7r8rr r4)rr.r r r Ú set_returnçszBdb.set_returncCsn|dkrtjƒj}|jƒx(|rO|j|_||_|j}q(W|jƒtj|jƒdS)N) ÚsysÚ _getframer4r!r+rTrrUÚsettrace)rr.r r r Ú set_traceîs       z Bdb.set_tracecCsj|j|jddƒ|jsftjdƒtjƒj}x(|re||jk re|`|j}q>WdS)Nrr)r rr rXrZrYr4rT)rr.r r r Ú set_continueýs  zBdb.set_continuecCs/|j|_d|_d|_tjdƒdS)NT)rr6r:r&rXrZ)rr r r Úset_quits   z Bdb.set_quitFc Cs‹|j|ƒ}ddl}|j||ƒ}|sAd||fS|jj|gƒ}||kro|j|ƒt|||||ƒ} dS)NrzLine %s:%d does not exist)rrÚgetliner Ú setdefaultÚappendr) rrrNrKÚcondÚfuncnamerr"ÚlistrOr r r Ú set_breaks   z Bdb.set_breakcCsD||ftjkr)|j|j|ƒ|j|s@|j|=dS)N)rÚbplistr Úremove)rrrNr r r Ú _prune_breaks!s zBdb._prune_breakscCs�|j|ƒ}||jkr&d|S||j|krGd||fSx/tj||fdd…D]}|jƒqeW|j||ƒdS)NzThere are no breakpoints in %szThere is no breakpoint at %s:%d)rr rreÚdeleteMerg)rrrNrOr r r Ú clear_break's$zBdb.clear_breakcCsiy|j|ƒ}Wn/tk rD}zt|ƒSWYdd}~XnX|jƒ|j|j|jƒdS)N)Úget_bpbynumberÚ ValueErrorrMrhrgÚfiler")rr0rOÚerrr r r Úclear_bpbynumber3s  zBdb.clear_bpbynumbercCsz|j|ƒ}||jkr&d|SxC|j|D]4}tj||f}x|D]}|jƒqTWq4W|j|=dS)NzThere are no breakpoints in %s)rr rrerh)rrr"ZblistrOr r r Úclear_all_file_breaks;s zBdb.clear_all_file_breakscCs>|js dSx!tjD]}|r|jƒqWi|_dS)NzThere are no breakpoints)r rÚ bpbynumberrh)rrOr r r Úclear_all_breaksEs  zBdb.clear_all_breakscCs�|stdƒ‚yt|ƒ}Wn"tk rFtd|ƒ‚YnXytj|}Wn"tk r|td|ƒ‚YnX|dkr™td|ƒ‚|S)NzBreakpoint number expectedz Non-numeric breakpoint number %sz!Breakpoint number %d out of rangezBreakpoint %d already deleted)rkÚintrrpÚ IndexError)rr0rJrOr r r rjMs    zBdb.get_bpbynumbercCs/|j|ƒ}||jko.||j|kS)N)rr )rrrNr r r Ú get_break\sz Bdb.get_breakcCsH|j|ƒ}||jkrD||j|krDtj||fpGgS)N)rr rre)rrrNr r r Ú get_breaksaszBdb.get_breakscCs1|j|ƒ}||jkr)|j|SgSdS)N)rr )rrr r r Úget_file_breaksgs zBdb.get_file_breakscCs|jS)N)r )rr r r Úget_all_breaksnszBdb.get_all_breakscCsíg}|r$|j|kr$|j}x?|dk re|j||jfƒ||jkrYP|j}q'W|jƒtdt|ƒdƒ}x2|dk r½|j|j|j fƒ|j}qŒW|dkrãtdt|ƒdƒ}||fS)Nrr) Útb_frameÚtb_nextr`rFrr4ÚreverseÚmaxÚlenÚ tb_lineno)rÚfÚtÚstackÚir r r Ú get_stackts      z Bdb.get_stackz: c Cs,ddl}ddl}|\}}|j|jjƒ}d||f}|jjrh||jj7}n |d7}d|jkr‘|jd} nd} | r³||j| ƒ7}n |d7}d|jkrö|jd} |d7}||j| ƒ7}|j|||j ƒ} | r(||| j ƒ7}|S)Nrz%s(%r)zZ__args__z()Z __return__z->) rÚreprlibrr7rGÚco_nameÚf_localsr-r^rEÚstrip) rZ frame_linenoZlprefixrrƒr.rNrÚsÚargsÚrvr"r r r Úformat_stack_entry†s*      zBdb.format_stack_entrycCs¹|dkr!ddl}|j}|dkr3|}|jƒt|tƒr^t|ddƒ}tj|jƒz-yt |||ƒWnt k r™YnXWdd|_ tjdƒXdS)NrzÚexecT) Ú__main__Ú__dict__r!Ú isinstancerMÚcompilerXrZr+r‹rr&)rÚcmdÚglobalsÚlocalsrŒr r r Úrun¤s        zBdb.runcCs˜|dkr!ddl}|j}|dkr3|}|jƒtj|jƒz-yt|||ƒSWntk rxYnXWdd|_tjdƒXdS)NrT) rŒr�r!rXrZr+Úevalrr&)rÚexprr‘r’rŒr r r Úruneval¶s        z Bdb.runevalcCs|j|||ƒdS)N)r“)rr�r‘r’r r r ÚrunctxÆsz Bdb.runctxcOsj|jƒtj|jƒd}z,y|||Ž}Wntk rJYnXWdd|_tjdƒX|S)NT)r!rXrZr+rr&)rÚfuncrˆÚkwdsÚresr r r ÚruncallÌs    z Bdb.runcall)-rrrrrr!r+r'r(r)r*rDr1r2rLr5r9r3r;r?r rSrUrVrWr[r\r]rdrgrirnrorqrjrtrurvrwr‚rŠr“r–r—r›r r r r rsV                              cCstƒjƒdS)N)rr[r r r r r[Úsr[c@s…eZdZdZiZdgZddddd„Zdd„Zdd „Zd d „Z dd d „Z dd„Z dd„Z dS)rrNFcCsÈ||_d|_||_||_||_||_d|_d|_d|_t j |_ t j d7_ |j j |ƒ||f|jkr®|j||fj |ƒn|g|j||fq|jd7_|js‡|jdkrz|jd8_qqì|dfSqyPt|j|j|j ƒ}|rÖ|jdkrÌ|jd8_n |dfSWq|dfSYqXqWdS)NrrTF)NN) rrer�r­rŸraržr”rEr…)rlr"r.Z possiblesr¬Úvalr r r rITs*    rIc@s@eZdZdd„Zdd„Zdd„Zdd„Zd S) ÚTdbcCs,|jj}|sd}td||ƒdS)Nz???z+++ call)r7r„r,)rr.rˆÚnamer r r r9…s z Tdb.user_callcCszddl}|jj}|s$d}|j|jjƒ}|j||j|jƒ}td||j|d|j ƒƒdS)Nrz???z+++ú:) rr7r„rrGr^rFrEr,r†)rr.rr°Úfnr"r r r r3‰s  z Tdb.user_linecCstd|ƒdS)Nz +++ return)r,)rr.Zretvalr r r r;�szTdb.user_returncCstd|ƒ|jƒdS)Nz +++ exception)r,r\)rr.Z exc_stuffr r r r?’s zTdb.user_exceptionN)rrrr9r3r;r?r r r r r¯„s    r¯cCs1td|dƒt|dƒ}td|ƒdS)Nzfoo(ú)é z bar returned)r,Úbar)ÚnÚxr r r Úfoo–sr¸cCstd|dƒ|dS)Nzbar(r³r=)r,)Úar r r rµ›srµcCstƒ}|jdƒdS)Nzimport bdb; bdb.foo(10))r¯r“)rr r r ÚtestŸs rº)rArXrÚinspectrÚ__all__Ú Exceptionrrr[rr­rIr¯r¸rµrºr r r r Ús   ÿÍ Z  0