config root man

Current Path : /compat/linux/proc/self/root/usr/local/lib/python2.5/idlelib/

FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64
Upload File :
Current File : //compat/linux/proc/self/root/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyc

³ò
h”Rc@s(dZddkZddkZddkZddkZdZdadZhZhZ	hZ
hZd„Zd„Z
ddd	„ƒYZd
dd„ƒYZd„Zd
dd„ƒYZddd„ƒYZddd„ƒYZdd d„ƒYZdd!d„ƒYZd„Zd„Zd„Zd„ZdS("sÎSupport for remote Python debugging.

Some ASCII art to describe the structure:

       IN PYTHON SUBPROCESS          #             IN IDLE PROCESS
                                     #
                                     #        oid='gui_adapter'
                 +----------+        #       +------------+          +-----+
                 | GUIProxy |--remote#call-->| GUIAdapter |--calls-->| GUI |
+-----+--calls-->+----------+        #       +------------+          +-----+
| Idb |                               #                             /
+-----+<-calls--+------------+         #      +----------+<--calls-/
                | IdbAdapter |<--remote#call--| IdbProxy |
                +------------+         #      +----------+
                oid='idb_adapter'      #

The purpose of the Proxy and Adapter classes is to translate certain
arguments and return values that cannot be transported through the RPC
barrier, in particular frame and traceback objects.

iÿÿÿÿNitidb_adaptertgui_adaptercCst|ƒ}|t|<|S(N(tidt
frametable(tframetfid((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyt
wrap_frame*s
cCsn|djodSnV|d}t|tiƒpt‚t|ƒ}|t|<|d|d|f}|SdS(s0replace info[2], a traceback instance, by its IDiiiN(tNonet
isinstancettypest
TracebackTypetAssertionErrorRttracebacktable(tinfot	tracebackttraceback_idt
modified_info((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyt	wrap_info/s


tGUIProxycBseZd„Zdd„ZRS(cCs||_||_dS(N(tconntoid(tselfRtgui_adap_oid((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyt__init__=s	cCs5|ii|id|t|ƒt|ƒfhƒdS(Ntinteraction(Rt
remotecallRRR(RtmessageRR
((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyRAsN(t__name__t
__module__RRR(((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyR;s	t
IdbAdaptercBs³eZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z	d„Z
d	„Zd
„Zd„Z
d„Zd
„Zd„Zd„Zd„Zd„Zd„ZRS(cCs
||_dS(N(tidb(RR((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyRJscCs|iiƒdS(N(Rtset_step(R((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyROscCs|iiƒdS(N(Rtset_quit(R((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyR RscCs|iiƒdS(N(Rtset_continue(R((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyR!UscCst|}|ii|ƒdS(N(RRtset_next(RRR((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyR"Xs
cCst|}|ii|ƒdS(N(RRt
set_return(RRR((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyR#\s
c	Csƒt|}|djo
d}nt|}|ii||ƒ\}}g}|D]\}}|t|ƒ|fqQ~}||fS(N(RRRRt	get_stackR(	RRttbidRttbtstacktit_[1]tk((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyR$`s



3cCs&ddk}|ii||iƒdS(Niÿÿÿÿ(t__main__Rtrunt__dict__(RtcmdR+((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyR,mscCs|ii||ƒ}|S(N(Rt	set_break(Rtfilenametlinenotmsg((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyR/qscCs|ii||ƒ}|S(N(Rtclear_break(RR0R1R2((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyR3uscCs|ii|ƒ}|S(N(Rtclear_all_file_breaks(RR0R2((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyR4yscCst|}t||ƒS(N(Rtgetattr(RRtnameR((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyt
frame_attrs
cCs-t|}|i}t|ƒ}|t|<|S(N(Rt	f_globalsRt	dicttable(RRRtdicttdid((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyt
frame_globalsƒs

	
cCs-t|}|i}t|ƒ}|t|<|S(N(Rtf_localsRR9(RRRR:R;((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pytframe_localsŠs

	
cCs-t|}|i}t|ƒ}|t|<|S(N(Rtf_codeRt	codetable(RRRtcodetcid((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyt
frame_code‘s

	
cCst|}|iS(N(R@tco_name(RRBRA((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyt	code_namešs
cCst|}|iS(N(R@tco_filename(RRBRA((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyt
code_filenamežs
cCst|}|iƒS(N(R9tkeys(RR;R:((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyt	dict_keys¤s
cCs$t|}||}t|ƒ}|S(N(R9trepr(RR;tkeyR:tvalue((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyt	dict_item¨s

(RRRRR R!R"R#R$R,R/R3R4R7R<R>RCRERGRIRM(((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyRHs&							
												cCs>t||ƒ}ti|ƒ}t|ƒ}|it|ƒtS(s|Start the debugger and its RPC link in the Python subprocess

    Start the subprocess side of the split debugger and set up that side of the
    RPC link by instantiating the GUIProxy, Idb debugger, and IdbAdapter
    objects and linking them together.  Register the IdbAdapter with the
    RPCServer to handle RPC requests from the split debugger GUI via the
    IdbProxy.

    (RtDebuggertIdbRtregistertidb_adap_oid(t
rpchandlerRt	gui_proxyRtidb_adap((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pytstart_debugger±s

t
FrameProxycBs>eZd„Zd„Zd„Zd„Zd„Zd„ZRS(cCs(||_||_d|_h|_dS(NR(t_connt_fidt_oidt
_dictcache(RRR((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyRÉs			cCs”|d djo
t|‚n|djo|iƒSn|djo|iƒSn|djo|iƒSn|ii|id|i|fhƒS(Nit_R?R8R=R7(tAttributeErrort_get_f_codet_get_f_globalst
_get_f_localsRWRRYRX(RR6((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyt__getattr__Ïs



cCs:|ii|id|ifhƒ}t|i|i|ƒS(NRC(RWRRYRXt	CodeProxy(RRB((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyR]Ûs$cCs1|ii|id|ifhƒ}|i|ƒS(NR<(RWRRYRXt_get_dict_proxy(RR;((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyR^ßscCs1|ii|id|ifhƒ}|i|ƒS(NR>(RWRRYRXRb(RR;((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyR_äscCsK|ii|ƒo|i|Snt|i|i|ƒ}||i|<|S(N(RZthas_keyt	DictProxyRWRY(RR;tdp((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyRbés

(RRRR`R]R^R_Rb(((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyRVÇs					RacBseZd„Zd„ZRS(cCs||_||_||_dS(N(RWRYt_cid(RRRRB((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyRós		cCsj|djo&|ii|id|ifhƒSn|djo&|ii|id|ifhƒSndS(NRDRERFRG(RWRRYRf(RR6((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyR`øs

(RRRR`(((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyRañs	RdcBs,eZd„Zd„Zd„Zd„ZRS(cCs||_||_||_dS(N(RWRYt_did(RRRR;((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyRs		cCs"|ii|id|ifhƒS(NRI(RWRRYRg(R((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyRHscCs%|ii|id|i|fhƒS(NRM(RWRRYRg(RRK((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyt__getitem__scCs
t|‚dS(N(R\(RR6((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyR`s(RRRRHRhR`(((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyRds			t
GUIAdaptercBseZd„Zd„ZRS(cCs||_||_dS(N(Rtgui(RRRj((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyRs	cCs,t|i|ƒ}|ii|||ƒdS(N(RVRRjR(RRRRR((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyRs(RRRR(((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyRis	tIdbProxycBsteZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z	d„Z
d	„Zd
„Zd„Z
RS(cCs||_||_||_dS(N(RRtshell(RRRlR((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyR"s		cOs"|ii|i|||ƒ}|S(N(RRR(Rt
methodnametargstkwargsRL((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pytcall'scCs4|ii|id|fhƒ}||ii_dS(NR,(Rt
asyncqueueRRltinterpt
active_seq(RR.tlocalstseq((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyR,-s!cCsa|id|i|ƒ\}}g}|D]%\}}|t|i|ƒ|fq)~}||fS(NR$(RpRXRVR(RRR%R'R(R)RR*((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyR$2s9cCs|idƒdS(NR!(Rp(R((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyR!8scCs|idƒdS(NR(Rp(R((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyR;scCs|id|iƒdS(NR"(RpRX(RR((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyR">scCs|id|iƒdS(NR#(RpRX(RR((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyR#AscCs|idƒdS(NR (Rp(R((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyR DscCs|id||ƒ}|S(NR/(Rp(RR0R1R2((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyR/GscCs|id||ƒ}|S(NR3(Rp(RR0R1R2((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyR3KscCs|id|ƒ}|S(NR4(Rp(RR0R2((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyR4Os(RRRRpR,R$R!RR"R#R R/R3R4(((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyRk s											cCsb|iddtfhƒat||tƒ}ti||ƒ}t||ƒ}|it|ƒ|S(s]Start the subprocess debugger, initialize the debugger GUI and RPC link

    Request the RPCServer start the Python subprocess debugger and link.  Set
    up the Idle side of the split debugger by instantiating the IdbProxy,
    debugger GUI, and debugger GUIAdapter objects and linking them together.

    Register the GUIAdapter with the RPCClient to handle debugger GUI
    interaction requests coming from the subprocess debugger via the GUIProxy.

    The IdbAdapter will pass execution and environment requests coming from the
    Idle debugger GUI to the subprocess debugger via the IdbProxy.

    texectstart_the_debugger(RRRQRkRNRiRP(trpcclttpyshellt	idb_proxyRjtgui_adap((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pytstart_remote_debuggerSscCst|ƒ|itƒdS(s]Shut down subprocess debugger and Idle side of debugger RPC link

    Request that the RPCServer shut down the subprocess debugger and link.
    Unregister the GUIAdapter, which will cause a GC on the Idle process
    debugger and RPC link objects.  (The second reference to the debugger GUI
    is deleted in PyShell.close_remote_debugger().)

    N(tclose_subprocess_debuggert
unregisterR(Rx((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pytclose_remote_debuggerks	
cCs|iddtfhƒdS(NRvtstop_the_debugger(RRQ(Rx((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pyR}wscCs6|iddtfhƒ}|tjp
td‚dS(NRvRws Idb restarted with different oid(RRRQR(Rxtidb_adap_oid_ret((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pytrestart_subprocess_debuggerzs((((((((t__doc__tsysR	trpcRNt	debuggingRQRRR9R@RRRRRRURVRaRdRiRkR|RR}R‚(((s2/usr/local/lib/python2.5/idlelib/RemoteDebugger.pys<module>s2		
i	*3			

Man Man