tzh
2024-08-22 c7d0944258c7d0943aa7b2211498fd612971ce27
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
L\¬Qc@sìdZddlZddlZddlTddlmZddddd    d
geZ[ejejejej    e
fZ dd „Z dd „Zdd „Zddddd„ZeZd„Zd„Zd„ZedkrèeƒndS(s0Disassembler of Python byte code into mnemonics.iÿÿÿÿN(t*(t__all__tdist disassembletdistbtdiscotfindlinestartst
findlabelscCsH|dkrtƒdSt|tjƒr5|j}nt|dƒrP|j}nt|dƒrk|j}nt|dƒrö|j    j
ƒ}|j ƒx®|D]U\}}t|t ƒršd|GHyt |ƒWntk
rê}dG|GHnXHqšqšWnNt|dƒrt|ƒn2t|tƒr.t|ƒntdt|ƒj‚dS(    snDisassemble classes, methods, functions, or code.
 
    With no argument, disassemble the last traceback.
 
    Ntim_funct    func_codet__dict__sDisassembly of %s:sSorry:tco_codes(don't know how to disassemble %s objects(tNoneRt
isinstancettypest InstanceTypet    __class__thasattrRR    R
titemstsortt
_have_codeRt    TypeErrorRtstrtdisassemble_stringttypet__name__(txRtnametx1tmsg((sK/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/dis.pyRs6    
        cCsl|dkrRy tj}Wntk
r5td‚nXx|jrN|j}q9Wnt|jj|j    ƒdS(s2Disassemble a traceback (default: last traceback).s no last traceback to disassembleN(
R tsystlast_tracebacktAttributeErrort RuntimeErrorttb_nextRttb_frametf_codettb_lasti(ttb((sK/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/dis.pyR3s     c Csa|j}t|ƒ}tt|ƒƒ}t|ƒ}d}d}d}x||kr\||}    t|    ƒ}
||kr•|dkr†Hnd||GndG||kr¬dGndG||krÃdGndGt|ƒjdƒGt    |
j
dƒG|d    }|
t krXt||ƒt||d    ƒd
|} d}|d }|
t krT| d }nt| ƒjd ƒG|
t krdt|j| ƒdGqX|
tkr±d|j| dGqX|
tkrÖdt|| ƒdGqX|
tkrød|j| dGqX|
tkrdt| dGqX|
tkrX|dkrB|j|j}nd|| dGqXnHqHWdS(sDisassemble a code object.is%3ds   s-->s>>s  iiiiilit(t)s(to N(R RtdictRtlenR tordtreprtrjusttopnametljustt HAVE_ARGUMENTt EXTENDED_ARGthasconstt    co_conststhasnametco_namesthasjrelthaslocalt co_varnamest
hascomparetcmp_opthasfreet co_cellvarst co_freevars( tcotlastitcodetlabelst
linestartstntit extended_argtfreetctoptoparg((sK/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/dis.pyR=s\      
 
 *
         c CsÚt|ƒ}t|ƒ}d}xµ||krÕ||}t|ƒ}    ||krVdGndG||krmdGndGt|ƒjdƒGt|    jdƒG|d}|    tkrÑt||ƒt||dƒd    }
|d
}t|
ƒjd ƒG|    tkr$|rd t||
ƒd GqÎd|
GqÑ|    t    krZ|dk    rOd ||
d GqÎd|
GqÑ|    t krdt||
ƒd GqÑ|    t kr¯|r¤d ||
d GqÎd|
GqÑ|    t krÑd t|
d GqÑnHq!WdS(Nis-->s   s>>s  iiiiiiR'R(s(%d)s(to (RR*R+R,R-R.R/R0R2R4R R6R7R9R:( R@R?tvarnamestnamest    constantsRARCRDRGRHRI((sK/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/dis.pyRnsH  
 
 &
         cCsíg}t|ƒ}d}xÎ||krè||}t|ƒ}|d}|tkrt||ƒt||dƒd}|d}d}|tkr¢||}n|tkr·|}n|dkrå||krâ|j|ƒqâqåqqW|S(s`Detect all offsets in a byte code which are jump targets.
 
    Return the list of offsets.
 
    iiiiiÿÿÿÿ(R*R+R0R6thasjabstappend(R@RARCRDRGRHRItlabel((sK/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/dis.pyR˜s& 
 
 &
         c    csîg|jddd…D]}t|ƒ^q}g|jddd…D]}t|ƒ^qF}d}|j}d}xZt||ƒD]I\}}|rÂ||krµ||fV|}n||7}n||7}qƒW||krê||fVndS(s”Find the offsets in a byte code which are start of lines in the source.
 
    Generate pairs (offset, lineno) as described in Python/compile.c.
 
    iNii(t    co_lnotabR+R tco_firstlinenotzip(    R@RGtbyte_incrementstline_incrementst
lastlinenotlinenotaddrt    byte_incrt    line_incr((sK/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/dis.pyR²s//            cCsÛtjdrftjdr:tjjdƒtjdƒntjd}| sZ|dkrld}qlnd}|dkr„tj}n t|ƒ}|jƒ}|dk    rµ|j    ƒnd}t
||dƒ}t |ƒdS(s*Simple test program to disassemble a file.iisusage: python dis.py [-|file]
t-s<stdin>texecN( RtargvtstderrtwritetexitR tstdintopentreadtclosetcompileR(tfntftsourceR@((sK/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/dis.pyt_testÈs"          t__main__(t__doc__RRtopcodeRt _opcodes_allt
MethodTypet FunctionTypetCodeTypet    ClassTypeRRR RRRRRRRRhR(((sK/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/dis.pyt<module>s(  
  #
1     '