;ò »ŒBc@s_dkZdkZdkZdkZdkZdklZdklZdkZdkl Z l Z l Z dk l Z dklZdZde_defd„ƒYZd efd „ƒYZd fd „ƒYZd efd„ƒYZdadfd„ƒYZdfd„ƒYZdefd„ƒYZdfd„ƒYZeiZde fd„ƒYZdS(N(schdir(spath(sBdbsBdbQuits Breakpoint(sRepr(s TupleTypeis DebugErrorcBstZdZRS(s#Incorrect operation of the debugger(s__name__s __module__s__doc__(((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys DebugErrors sBreakpointErrorcBstZdZRS(s#Incorrect operation on a breakpoint(s__name__s __module__s__doc__(((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysBreakpointError!s sDebuggerConnectioncBs^tZdZd„Zd„Zd„Zdd„Zeed„Zfdfd„Z d „Z dd „Z d „Z d „Z d „Zd„Zd„Zd„Zd„Zd„Zddddd„Zdd„Zdd„Zdd„Zd„Zd„Zd„Zd„Zdfd„Zfdffd„Zdfd„Zd„Zd „Z d!„Z!RS("s9A debugging connection that can be operated via RPC. cCs ||_dS(s=Creates a DebuggerConnection that wraps around a DebugServer.N(sdssselfs_ds(sselfsds((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys__init__)scOs6t||||ƒ}|idƒ|ii |ƒdS(Ni( s MethodCalls func_namesargsskws do_returnssmssetWaitsselfs_dssqueueServerMessage(sselfs func_names do_returnsargsskwssm((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys _callNoWait-s cOsCt||||ƒ}|iƒ|ii |ƒ|i ƒ}|SdS(N( s MethodCalls func_namesargsskws do_returnssms setupEventsselfs_dssqueueServerMessages getResultsres(sselfs func_names do_returnsargsskwssmsres((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys _callMethod2s   icCs||i_dS(sSAllows the debugger to set sys.path, sys.argv, and use os.chdir(). N(sallowsselfs_dss_allow_env_changes(sselfsallow((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysallowEnvChanges<scCs|idd|||ƒdS(s^Starts debugging. Stops the process at the first source line. Non-blocking. sruniN(sselfs _callNoWaitscmdsglobalsslocals(sselfscmdsglobalsslocals((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysrunBsicCs |idd||||ƒdS(s«Starts debugging. Stops the process at the first source line. Use the autocont parameter to proceed immediately rather than stop. Non-blocking. srunFileiN(sselfs _callNoWaitsfilenamesparamssautoconts add_paths(sselfsfilenamesparamssautoconts add_paths((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysrunFileHscCs|iddƒdS(s0 Inspecting tracebacks in the debugger s post_mortemiN(sselfs _callMethod(sself((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys post_mortemOscCs|idd|ƒdS(sKProceeds until a breakpoint or program stop. Non-blocking. s set_continueiN(sselfs _callNoWaits full_speed(sselfs full_speed((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys set_continueTscCs|iddƒdS(s6Steps to the next instruction. Non-blocking. sset_stepiN(sselfs _callNoWait(sself((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysset_stepZscCs|iddƒdS(sWProceeds until the process returns from the current stack frame. Non-blocking.s set_step_outiN(sselfs _callNoWait(sself((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys set_step_out_scCs|iddƒdS(sVProceeds to the next source line in the current frame or above. Non-blocking.s set_step_overiN(sselfs _callNoWait(sself((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys set_step_overdscCs|idd|ƒdS(s6Updates the lineno of the bottom frame. Non-blocking.s set_step_jumpiN(sselfs _callMethodslineno(sselfslineno((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys set_step_jumpiscCs|iiƒdS(s@Stops as soon as possible. Non-blocking and immediate. N(sselfs_dss stopAnywhere(sself((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys set_pausemscCs|iddƒdS(seAttempts to quits debugging, executing only the try/finally handlers. Non-blocking. sset_quitiN(sselfs _callNoWait(sself((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysset_quitrscCs|iddƒdS(swRaises a BdbQuit exception in the current thread then allows other threads to continue. Non-blocking. sset_disconnectiN(sselfs _callNoWait(sself((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysset_disconnectxscCs|ii|ƒdS(s‹brks is a list of mappings containing the keys: filename, lineno, temporary, enabled, and cond. Non-blocking and immediate.N(sselfs_dsssetAllBreakpointssbrks(sselfsbrks((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pyssetAllBreakpoints~sscCs#|ii||||||ƒdS(s8Sets a breakpoint. Non-blocking and immediate. N( sselfs_dss addBreakpointsfilenameslinenos temporaryscondsenabledsignore(sselfsfilenameslinenos temporaryscondsenabledsignore((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys addBreakpoint„scCs|ii|||ƒdS(sgSets the enabled flag for all breakpoints on a given line. Non-blocking and immediate. N(sselfs_dssenableBreakpointssfilenameslinenosenabled(sselfsfilenameslinenosenabled((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysenableBreakpoints‹scCs|ii|||ƒdS(sfSets the ignore flag for all breakpoints on a given line. Non-blocking and immediate. N(sselfs_dssignoreBreakpointssfilenameslinenosignore(sselfsfilenameslinenosignore((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysignoreBreakpoints‘scCs|ii|||ƒdS(s\Sets the break condition for all breakpoints on a given line. Non-blocking. N(sselfs_dssconditionalBreakpointssfilenameslinenoscond(sselfsfilenameslinenoscond((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysconditionalBreakpoints—scCs|ii||ƒdS(sNClears all breakpoints on a line. Non-blocking and immediate. N(sselfs_dssclearBreakpointssfilenameslineno(sselfsfilenameslineno((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysclearBreakpointsscCs|ii|||ƒdS(s|Moves all applicable breakpoints when delta lines are added or deleted. Non-blocking and immediate. N(sselfs_dssadjustBreakpointssfilenameslinenosdelta(sselfsfilenameslinenosdelta((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysadjustBreakpoints£scCs|idd||ƒSdS(s+Pretty-prints the value of name. Blocking.spprintVarValueiN(sselfs _callMethodsnamesframeno(sselfsnamesframeno((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pyspprintVarValue¬scCs|iddƒSdS(sÔReturns a mapping containing the keys: exc_type, exc_value, stack, frame_stack_len, running. Also returns and empties the stdout and stderr buffers. stack is a list of mappings containing the keys: filename, lineno, funcname, modname. breaks contains the breakpoint statistics information for all current breakpoints. The most recent stack entry will be at the last of the list. Blocking. sgetStatusSummaryiN(sselfs _callMethod(sself((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysgetStatusSummary°s cCs—|o|i|d|ddƒn|oVddddddd d f}||jotd |ƒ‚nt||ƒ|Œn|iƒ}|Sd S( sUExecutes one non-blocking command then returns getStatusSummary(). Blocking.iis set_continuesset_steps set_step_overs set_step_outs set_pausesset_quitsset_disconnects set_step_jumpsIllegal command: %sN( stemp_breakpointsselfs addBreakpointscommandsalloweds DebugErrorsgetattrsargssgetStatusSummarysss(sselfscommandstemp_breakpointsargsssssallowed((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysproceedAndRequestStatus½s  cCs7|i|ƒ|idd||||ƒ|iƒSdS(sPCalls setAllBreakpoints(), runFile(), and getStatusSummary(). Blocking.srunFileiN( sselfssetAllBreakpointssbreakss _callNoWaitsfilenamesparamssautoconts add_pathssgetStatusSummary(sselfsfilenamesparamssautoconts add_pathssbreaks((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysrunFileAndRequestStatusÌs cCs=|i|ƒ|o|iƒn|iiƒ|iƒSdS(sDCalls setAllBreakpoints() and getStatusSummary(). Blocking.N(sselfssetAllBreakpointssbreakssautoconts set_continues_dssset_stepsgetStatusSummary(sselfsautocontsbreaks((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pyssetupAndRequestStatusÔs   cCs|idd||ƒSdS(sSReturns the repr-fied mappings of locals and globals in a tuple. Blocking.s getSafeDictiN(sselfs _callMethodslocalssframeno(sselfslocalssframeno((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys getSafeDictÞscCs|idd||ƒSdS(s¿Evalutes the watches listed in exprs and returns the results. Input is a tuple of mappings with keys name and local; output is a mapping of name -> svalue. Blocking. sevaluateWatchesiN(sselfs _callMethodsexprssframeno(sselfsexprssframeno((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysevaluateWatchesãscCs|idd||ƒSdS(ssReturns a tuple containing the names of subobjects available through the given watch expression. Blocking.sgetWatchSubobjectsiN(sselfs _callMethodsexprsframeno(sselfsexprsframeno((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysgetWatchSubobjectsês("s__name__s __module__s__doc__s__init__s _callNoWaits _callMethodsallowEnvChangessNonesrunsrunFiles post_mortems set_continuesset_steps set_step_outs set_step_overs set_step_jumps set_pausesset_quitsset_disconnectssetAllBreakpointss addBreakpointsenableBreakpointssignoreBreakpointssconditionalBreakpointssclearBreakpointssadjustBreakpointsspprintVarValuesgetStatusSummarysproceedAndRequestStatussrunFileAndRequestStatusssetupAndRequestStatuss getSafeDictsevaluateWatchessgetWatchSubobjects(((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysDebuggerConnection%s>                      sNonBlockingDebuggerConnectioncBs&tZdZeZd„Zd„ZRS(sModifies call semantics in such a way that even blocking calls don't block but instead return None. Note that for each call, a new NonBlockingDebuggerConnection object has to be created. Use setCallback() to receive notification when blocking calls are finished. cCs ||_dS(N(scallbacksself(sselfscallback((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys setCallbackþscOsKt||||ƒ}|io|i|iƒn|i i |ƒt SdS(N( s MethodCalls func_namesargsskws do_returnssmsselfscallbacks setCallbacks_dssqueueServerMessagesNone(sselfs func_names do_returnsargsskwssm((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys _callMethods  (s__name__s __module__s__doc__sNonescallbacks setCallbacks _callMethod(((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysNonBlockingDebuggerConnectionôs  isDebuggerControllercBsMtZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z RS(s8Interfaces between DebuggerConnections and DebugServers.cCs.h|_d|_tiƒ|_t|_dS(Ni(sselfs_debug_serverss_next_server_ids threadingsLocks_server_id_locksNones_message_timeout(sself((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys__init__s  cCsI|iiƒz#t|iƒ}|id|_Wd|iiƒX|SdS(Ni(sselfs_server_id_locksacquiresstrs_next_server_idsidsrelease(sselfsid((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys _newServerIds cCs\to+x(|iiƒD]}|i|ƒqWntƒ}|iƒ}||i|<|SdS(s=Returns a string which identifies a new DebugServer. N( sexclusive_modesselfs_debug_serversskeyssids deleteServers DebugServersdss _newServerId(sselfsidsds((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys createServer s   cCs6y(|i|}|iƒ|i|ƒWnnXdS(s-Terminates the connection to the DebugServer.N(sselfs_debug_serverssidsdssset_quits _deleteServer(sselfsidsds((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys deleteServer-s  cCs|i|=dS(N(sselfs_debug_serverssid(sselfsid((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys _deleteServer5scCs|i|SdS(N(sselfs_debug_serverssid(sselfsid((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys_getDebugServer8scCs |iSdS(N(sselfs_message_timeout(sself((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysgetMessageTimeout;s( s__name__s __module__s__doc__s__init__s _newServerIds createServers deleteServers _deleteServers_getDebugServersgetMessageTimeout(((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysDebuggerControllers     s ServerMessagecBsAtZd„Zed„Zd„Zd„Zd„Zd„ZRS(NcCstiƒ|_dS(N(s threadingsEventsselfsevent(sself((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys setupEvent@scCs%t|dƒo|iiƒndS(Nsevent(shasattrsselfseventswait(sselfstimeout((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pyswaitCscCsdSdS(Ni((sself((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys doExecuteGscCsdSdS(Ni((sself((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysdoReturnHscCsdSdS(Ni((sself((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysdoExitIscCsdS(N((sselfsds((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysexecuteJs( s__name__s __module__s setupEventsNoneswaits doExecutesdoReturnsdoExitsexecute(((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys ServerMessage?s      s MethodCallcBsJtZd„Zd„Zd„Zd„Zd„Zd„Zed„Z RS(NcCs1||_||_||_||_d|_dS(Ni(s func_namesselfsargsskws do_returnswaiting(sselfs func_namesargsskws do_return((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys__init__Ms     cCs ||_dS(N(svalsselfswaiting(sselfsval((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pyssetWaitTscCsdSdS(Ni((sself((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys doExecuteWscCsíy%t||iƒ|i|iŽ}Wnsttfj o ‚n†t |dƒo|i i ƒqÈ|i ot iƒ|_qÈdk}|iƒn.Xt |dƒo|i i|ƒn ||_t |dƒo|iiƒndS(Nscallbacksevent(sgetattrsobsselfs func_namesargsskwsresults SystemExitsBdbQuitshasattrscallbacksnotifyExceptionswaitingssyssexc_infosexcs tracebacks print_excs notifyReturnseventsset(sselfsobs tracebacksresult((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysexecuteZs %   cCs |iSdS(N(sselfs do_return(sself((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysdoReturnrscCs ||_dS(N(scallbacksself(sselfscallback((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys setCallbackuscCsv|iƒt|dƒo3z%|id|id|id‚Wd|`Xnt|dƒ o td‚n|iSdS(Nsexciiisresults)Timed out while waiting for debug server.(sselfswaitshasattrsexcs DebugErrorsresult(sselfstimeout((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys getResultxs %  ( s__name__s __module__s__init__ssetWaits doExecutesexecutesdoReturns setCallbacksNones getResult(((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys MethodCallLs      sThreadChoiceLockcBs5tZdZd„Zdd„Zd„Zd„ZRS(sjA reentrant lock designed for simply choosing a thread. It is always released when you call release().cCst|_tiƒ|_dS(N(sNonesselfs_ownersthreads allocate_locks_block(sself((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys__init__Šs icCsRtiƒ}|i|jodSn|ii|ƒ}|o ||_n|SdS(Ni( sthreads get_identsmesselfs_owners_blocksacquiresblockingsrc(sselfsblockingsmesrc((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysacquireŽs  cCs&tiƒ}t|_|iiƒdS(N(sthreads get_identsmesNonesselfs_owners_blocksrelease(sselfsme((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysrelease—s  cCs.tiƒ}||ijo|iƒndS(N(sthreads get_identsmesselfs_ownersrelease(sselfsme((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysreleaseIfOwneds (s__name__s __module__s__doc__s__init__sacquiresreleasesreleaseIfOwned(((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysThreadChoiceLock†s   s DebugServercBsftZeZeZdZdZdZdZdZ d„Z d„Z d„Z d„Z d„Zd„Zd „Zd „Zd „Zd „Zd „Zd„Zd„Zd„Zd„Zd„Zdd„Zd„Zdd„Zd„Zd„Zd„Zded„Z ded„Z!d„Z"d„Z#d„Z$d„Z%d „Z&d!„Z'd"„Z(eed#„Z)d$„Z*ed%„Z+d&„Z,d'„Z-d(„Z.d)„Z/dd*ddd+„Z0dd,„Z1dd-„Z2d*d.„Z3d/„Z4d0„Z5d1„Z6d2„Z7d3„Z8d4„Z9d5„Z:d6„Z;d7„Z<d8„Z=d9„Z>d:d;„Z?d<„Z@d=„ZAd>„ZBRS(?NiiÿÿÿÿcCsˆti|ƒh|_t|_tidƒ|_tƒ|_ t ƒ|_ }d|_ d|_ d|_d|_|iƒf|_dS(Niidiè(sBdbs__init__sselfsfncachesNonesbotframesQueues_DebugServer__queuesThreadChoiceLocks_locksReprsreprs maxstringsmaxothersmaxdict2s_runnings cleanupServers stopframe(sselfsrepr((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys__init__Ãs         cCs|ii|ƒdS(N(sselfs_DebugServer__queuesputssm(sselfssm((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysqueueServerMessageÖscCsU|iƒt|_d|_d|_t|_d|_|ii ƒ|i i ƒdS(Niÿÿÿÿi( sselfsresetsNonesframesignore_stoplinesautocontsexc_infosstarting_tracesfncachesclears_locksreleaseIfOwned(sself((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys cleanupServerÙs       cCsGx@no8y|iƒWndk}|iƒnXd|_q WdS(s$Bootstraps the debugger server loop.iNi(sselfs eventLoops tracebacks print_excsquitting(sselfs traceback((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysservicerThreadãs cCs*x#|i o|iƒ oPqqWdS(N(sselfsquittingsexecuteOneEvent(sself((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys eventLoopîs cCs–|iiƒ}|iƒo|i|ƒn|iƒotiƒn|i ƒo9|i ƒ|i od|_ t i |iƒndSndSdS(Nii(sselfs_DebugServer__queuesgetssms doExecutesexecutesdoExitsthreadsexitsdoReturns beforeResumesstarting_tracessysssettracestrace_dispatch(sselfssm((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysexecuteOneEventós      cCst|_t|_dS(s4Frees references before jumping back into user code.N(sNonesselfsframesexc_info(sself((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys beforeResumes cCs©|ii|tƒ}| o„|d djo|ddjp|idƒdjo |}n2|idƒod|d }nti |ƒ}||i|s://isPython expressionsi( sselfsfncachesgetsfilenamesNonescanonicsfinds startswithspathsabspath(sselfsfilenamescanonic((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pyscanonic s8 cCs&|i|iiƒ}||ifSdS(s<Returns the filename and line number for the frame. N(sselfscanonicsframesf_codes co_filenamesfilenamesf_lineno(sselfsframesfilename((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysgetFilenameAndLinescCs^y|id}Wntj o d}nX|tjo d}n|ii}||fSdS(s<Returns the module and function name for the frame. s__name__sN(sframes f_globalssmodnamesKeyErrorsNonesf_codesco_namesfuncname(sselfsframesmodnamesfuncname((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys getFrameNames s    cCs|iiddƒSdS(Ns __traceable__i(sframes f_globalssget(sselfsframe((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys isTraceable,scCsÄ|i|ƒ\}}|ii|ƒ odSn||i|j odSnti|||ƒ\}}|oL|i |_ |o|i o|it|i ƒƒn|i|ƒdSndSdS(Nii(sselfsgetFilenameAndLinesframesfilenameslinenosbreaksshas_keysbdbs effectivesbpsflagsnumbers currentbps temporarysdo_clearsstrsafterBreakpoint(sselfsframesfilenamesflagsbpslineno((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys break_here/s  cCs)|i|ƒ\}}|ii|ƒSdS(N(sselfsgetFilenameAndLinesframesfilenameslinenosbreaksshas_key(sselfsframeslinenosfilename((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysbreak_anywhereAscCsÉ||ijodSn|i}|tjo|i|ƒSn|fjodSn||jo|i|ijo|i|ƒSn|}x3|o+||jo|i|ƒSn|i }qŽWdSdS(Ni( sframesselfsbotframes stopframessfsNones isTraceablesf_linenosignore_stoplinesfsf_back(sselfsframesfssf((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys stop_hereEs      cCsrt}|}|i}x9|o1||_|}|i}||i joPqqW|i tjo ||_ ndS(N( sNones root_framesframesfsselfstrace_dispatchstdsf_tracesf_backsbotframe(sselfsframesfs root_framestd((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysadd_trace_hooks^s    cCsktitƒy d‚WnMtiƒdi}x4|o(|`||ijoPn|i }q3WnXdS(Ns gen_exc_infoi( ssysssettracesNonesexc_infostb_framesframesf_tracesselfsbotframesf_back(sselfsframe((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysremove_trace_hooksls  cCsSf|_t|_d|_|od|_|iƒn d|_|ii ƒdS(s?Only stop at breakpoints, exceptions or when finished. iiN( sselfs stopframesNones returnframesquittings full_speedsstarting_tracesremove_trace_hookss_locksreleaseIfOwned(sselfs full_speed((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys set_continue{s     cCs|idƒtd‚dS(sDebugging client disconnected. Raise a quit exception in just this thread, but allow other threads to continue. isClient disconnectedN(sselfs set_continuesBdbQuit(sself((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysset_disconnectŒs icCsƒtitƒd|_|oKy d‚Wntiƒdii}nX|i |ƒti|i ƒn|i ƒ|i iƒdS(s_Allows user code to enable/disable tracing without changing the stepping mode. is gen_exc_infoiN(ssysssettracesNonesselfs_runningsenablesexc_infostb_framesf_backsframesadd_trace_hooksstrace_dispatchsremove_trace_hookss_locksreleaseIfOwned(sselfsenablesframe((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys set_traceable“s     cCsc|i|ƒ\}}|ii|tƒ}|tjp ||jo||fSn|i |ƒSdS(s°Indicates whether the debugger should stop at a hard breakpoint. Returns a (filename, lineno) tuple if the debugger should also set a soft breakpoint. N( sselfsgetFilenameAndLinesframesfilenameslinenosbreakssgetsNonesbrkss break_here(sselfsframesfilenamesbrksslineno((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pyshard_break_here¦s cCsÒy d‚Wntiƒdii}nX|i|ƒ}| odSn|ii dƒ odSnt |t ƒo |\}}|i||ƒnd|_|i|ƒd|_|i|ƒ|i|ƒdS(sVStart debugging from the caller's frame. Called by hard breakpoints. s gen_exc_infoiNii(ssyssexc_infostb_framesf_backsframesselfshard_break_heresstops_locksacquires isinstances TupleTypesfilenameslinenos set_breaks_runningsadd_trace_hookssstarting_tracesafterBreakpoints user_line(sselfsstopsfilenameslinenosframe((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys set_trace¶s$      cCs|iƒdS(N(sselfsset_step(sselfsframe((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pysafterBreakpointÓscCsU|ii|ƒ og|i|cBsidkl}ei|dƒf\}e_z-e||dƒ}|||Ueii ƒSWd|e_XdS(N(sStringIOsssingle( sStringIOssyssstdouts_tsscompilescodesnamescos globalsDicts localsDictsgetvalue(sselfscodes globalsDicts localsDictsnamescosStringIOs_ts((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pys pythonShellis   c Cs–|i|ƒ}|tjodSnoy,|i|ƒ\}}|i|||ƒSWn?t i ƒd \}}dk}di|i||ƒƒSnXdS(Nserror: no current frameis(sselfsgetFrameByNumbersframenosframesNonesgetFrameNamespacess globalsDicts localsDicts pythonShellsexprssyssexc_infostsvs tracebacksjoinsformat_exception_only( sselfsexprsframenos tracebacks localsDictstsvsframes globalsDict((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pyspprintVarValue~s  cCs|ii|ƒSdS(N(sselfsreprss(sselfss((s_/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Debugger/IsolatedDebugger.pyssafeRepr‹scCsqh}|iƒ}t|ƒ|ijo||i }nx-|D]%\}}|i |ƒ|t |ƒ