Uname: Linux web3.us.cloudlogin.co 5.10.226-xeon-hst #2 SMP Fri Sep 13 12:28:44 UTC 2024 x86_64
Software: Apache
PHP version: 8.1.31 [ PHP INFO ] PHP os: Linux
Server Ip: 162.210.96.117
Your Ip: 18.191.62.45
User: edustar (269686) | Group: tty (888)
Safe Mode: OFF
Disable Function:
NONE

name : test_gdb.pyc
�
?��cc@s�ddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZmZyddl
Z
Wnek
r�eZ
nXd�Ze�\ZZZedkr�ejdeeef��nejjd�rejd��nejjejjej�d	�Zd
�Ze�Zd�Zej�rxejd��ned
�\Z Z!e r�ejd��ndejgZ"edej�\Z!Z#de#kr�dZ$eje$e#j%���nd�Z&d�Z'e'�Z(dej)fd��YZ*ej+e&�d�de*fd��Y�Z,ej+e&�d�de*fd��Y�Z-de*fd��YZ.de*fd��YZ/de*fd ��YZ0d!e*fd"��YZ1d#�Z2e3d$kr�e2�ndS(%i����N(ttest_support(trun_unittesttfindfilecCs�yDtjdddgdtjdtjdt�}|j�d}Wn tk
rftjd��nXtj	d	|�}|dkr�td
|��n|t|j
d��t|j
d��fS(
Ntgdbs-nxs	--versiontstdouttstderrtuniversal_newlinesisCouldn't find gdb on the paths^GNU gdb.*?\b(\d+)\.(\d+)sunable to parse GDB version: %rii(t
subprocesstPopentPIPEtTruetcommunicatetOSErrortunittesttSkipTesttretsearchtNonet	Exceptiontinttgroup(tproctversiontmatch((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pytget_gdb_versions			
isFgdb versions before 7.0 didn't support python embedding. Saw %s.%s:
%stsunoss&test doesn't work very well on Solariss
python-gdb.pycCsEtjd�}|stS|j�}d|koDtd�|D��S(NtCFLAGSs-mcetcss.|]$}|jd�o%|jd�VqdS(s-fcf-protections=nones=returnN(s=nones=return(t
startswithtendswith(t.0tflag((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pys	<genexpr>Fs(t	sysconfigtget_config_vartFalsetsplittany(tcflagstflags((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pytcet_protection>s	c
Os�|r%tjj�}|j|�nd}d
}ttfdkrZ|ddtf7}ntj	||dtj
d	tj
d
tj
d|�j�\}}||fS(skRuns gdb in batch mode with the additional arguments given by *args.

    Returns its (stdout, stderr)
    Rs--batchs-nxiis-iexsadd-auto-load-safe-path tstdinRRtenvN(Rs--batchs-nx(ii(tostenvirontcopytupdateRtgdb_major_versiontgdb_minor_versiontcheckout_hook_pathRRR	R(targstenv_varsR(tbase_cmdtoutterr((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pytrun_gdbNs	's3test_gdb only works on source builds at the moment.s9--eval-command=python import sys; print(sys.version_info)s*gdb not built with embedded python supports--argssauto-loading has been declineds3gdb security settings prevent use of custom hooks: cCsOtj�d}d}x,|j�D]}|jd�r#|}q#q#W|dkS(Nt	PY_CFLAGSts-Os-O0s-Og(R7s-O0s-Og(Rtget_config_varsR"R(R$t	final_opttopt((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pytpython_is_optimizedts
cCs^td�\}}tjd|�}|s<tjd��n|jd�jd�}d|kS(Ns+--eval-command=python print(dir(gdb.Frame))s.*\[(.*)\].*s1Unable to parse output from gdb.Frame.select testis, s'select'(R5RRR
RRR"(Rt_tmt
gdb_frame_dir((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pytgdb_has_frame_select|st
DebuggerTestscBsPeZdZdddded�Zded�Zd�Zd�Zd�Z	RS(s(Test that the debugger can debug Python.tPyObject_PrintcCsTdd|ddg}ttfdkr8|dg7}n|ratrT|dg7}n||7}n
|d	g7}d
ddg}|g|D]}d
|^q�7}|dtjg7}|s�|dg7}n|r�|d|g7}n|r�||g7}ntdd|�\}	}
x!|
j�D]}tj|IJqWd|
krPtj	d��n|	S(s�
        Run 'python -c SOURCE' under gdb with a breakpoint.

        Support injecting commands after the breakpoint is reached

        Returns the stdout from gdb

        cmds_after_breakpoint: if provided, a list of strings: gdb commands
        sset breakpoint pending yessbreak %ssset print address offtruniisset print entry-values notnextt	backtraceRs--batchs-nxs--eval-command=%ss--argss-Ss-ctPYTHONHASHSEEDt0sPC not savedsKgdb cannot walk the frame object because the Program Counter is not present(ii(
R-R.tCET_PROTECTIONtsyst
executableR5t
splitlinesRR
R(tselftsourcetscriptt
breakpointtcmds_after_breakpointtimport_sitetcommandsR0tcmdR3R4tline((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pytget_stack_trace�s6
	

!
cCs{|pdg}|j|ddd|d|�}tjd|tj�}|sh|jd||f�n|jd�|fS(	Nsbacktrace 1RNRARORPs6.*#0\s+PyObject_Print\s+\(\s*op\=\s*(.*?),\s+fp=.*\).*sUnexpected gdb output: %r
%si(RTRRtDOTALLtfailR(RKRLRORPt
gdb_outputR=((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pytget_gdb_repr�s		cCs*|j|j|�dd||f�dS(s9Ensure that the given "actual" string ends with "exp_end"tmsgs%r did not end with %rN(t
assertTrueR(RKtactualtexp_end((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pytassertEndsWithscCs9tj||tj�}|j|dd||f�dS(NRYs%r did not match %r(RRRURZ(RKR[tpatternR=((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pytassertMultilineMatchesscCs
td�S(Ns
gdb_sample.py(R(RK((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pytget_sample_scriptsN(
t__name__t
__module__t__doc__RR!RTRXR]R_R`(((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyR@�s_		s&Python was compiled with optimizationstPrettyPrintTestscBs:eZd�Zd!d�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zd�Zd�Zd�Zd!d!d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d�Z"d �Z#RS("cCs&|jd�}|jd|k�dS(Nsprint 42RA(RTRZ(RKRW((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_getting_backtracescCs<|jdt|�|�\}}|j|t|��dS(Nsprint (RXtreprtassertEqual(RKtvalROtgdb_reprRW((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyt
assertGdbReprscCsL|jd�|jd�|jd�|jtj�|jtj�dS(s2Verify the pretty-printing of various "int" valuesi*ii����N(RjRHtmaxint(RK((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_int"s



cCs8|jd�|jd�|jd�|jd�dS(s3Verify the pretty-printing of various "long" valuesllJ)�l����l�����I�5N(Rj(RK((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyt	test_long*s


cCs+|jt�|jt�|jd�dS(s2Verify the pretty-printing of True, False and NoneN(RjR
R!R(RK((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_singletons1s

cCs2|ji�|jidd6�|jd�dS(s*Verify the pretty-printing of dictionariestbartfoos{'foo': 'bar', 'douglas':42}N(Rj(RK((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyt
test_dicts7s
cCs$|jg�|jtd��dS(s#Verify the pretty-printing of listsiN(Rjtrange(RK((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyt
test_lists=s
cCs8|jd�|jd�|jd�|jd�dS(s%Verify the pretty-printing of stringsR7s(And now for something hopefully the sames7string with embedded NUL here  and then some more texts!this is byte 255:� and byte 128:�N(Rj(RK((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_stringsBs


cCs.|jt��|jd�|jd�dS(s$Verify the pretty-printing of tuplesiRpRotbazN(i(RpRoRu(Rjttuple(RK((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_tuplesIs
cCsE|jd�|jd�|jd�|jd�|jd�dS(s,Verify the pretty-printing of unicode valuesuuhello worldu☠u文字化けu𝄡N(Rj(RK((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_unicodeOs




cCs�|jt��|jd�d}|j|jd��|j|jd��|jt|�ddh�|jd�d}|j|jd��|j|jd��|jt|�dd	h�|jd
�\}}|j|d�dS(
s"Verify the pretty-printing of setssprint set(['a', 'b'])isset([s])tatbsprint set([4, 5])iis"s = set(['a','b'])
s.pop()
print ss
set(['b'])N(RjtsetRXRZRRRgteval(RKtrepRiRW((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyt	test_setsgscCs�|jt��|jd�d}|j|jd��|j|jd��|jt|�ddh�|jd�d}|j|jd��|j|jd��|jt|�dd	h�d
S(s(Verify the pretty-printing of frozensetssprint frozenset(['a', 'b'])isfrozenset([s])RyRzsprint frozenset([4, 5])iiN(Rjt	frozensetRXRZRRRgR|(RKR}((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_frozensetszscCsN|jd�\}}|j|d�|jd�\}}|j|d�dS(NsR
try:
    raise RuntimeError("I am an error")
except RuntimeError, e:
    print e
s)exceptions.RuntimeError('I am an error',)s>
try:
    a = 1 // 0
except ZeroDivisionError, e:
    print e
sCexceptions.ZeroDivisionError('integer division or modulo by zero',)(RXRg(RKRiRW((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_exceptions�s		cCsB|jd�\}}tjd|�}|j|dd|�dS(s5Verify the pretty-printing of classic class instancess:
class Foo:
    pass
foo = Foo()
foo.an_int = 42
print foos(<Foo\(an_int=42\) at remote 0x[0-9a-f]+>RYs%Unexpected classic-class rendering %rN(RXRRRZ(RKRiRWR=((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_classic_class�s
cCsB|jd�\}}tjd|�}|j|dd|�dS(s7Verify the pretty-printing of new-style class instancessB
class Foo(object):
    pass
foo = Foo()
foo.an_int = 42
print foos(<Foo\(an_int=42\) at remote 0x[0-9a-f]+>RYs'Unexpected new-style class rendering %rN(RXRRRZ(RKRiRWR=((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_modern_class�s
cCsB|jd�\}}tjd|�}|j|dd|�dS(s<Verify the pretty-printing of an instance of a list subclasssQ
class Foo(list):
    pass
foo = Foo()
foo += [1, 2, 3]
foo.an_int = 42
print foos(<Foo\(an_int=42\) at remote 0x[0-9a-f]+>RYs'Unexpected new-style class rendering %rN(RXRRRZ(RKRiRWR=((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_subclassing_list�s
cCsB|jd�\}}tjd|�}|j|dd|�dS(s=Verify the pretty-printing of an instance of a tuple subclasssJ
class Foo(tuple):
    pass
foo = Foo((1, 2, 3))
foo.an_int = 42
print foos(<Foo\(an_int=42\) at remote 0x[0-9a-f]+>RYs'Unexpected new-style class rendering %rN(RXRRRZ(RKRiRWR=((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_subclassing_tuple�s
c
Cs�|r|dg}n	dg}|j|d|�\}}|rX|t|�krXdSn|rod|d}nd}tj||�}	|	s�|jd||f�ndS(s�Run Python under gdb, corrupting variables in the inferior process
        immediately before taking a backtrace.

        Verify that the variable's representation is the expected failsafe
        representationRDRONt<s at remote 0x[0-9a-f]+>s<.* at remote 0x[0-9a-f]+>s$Unexpected gdb representation: %r
%s(RXRfRRRV(
RKRLt
corruptiontexpvaluetexptypeRORiRWR^R=((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyt
assertSane�s		cCs5|jddddg�\}}|j|d�dS(s2Ensure that a NULL PyObject* is handled gracefullysprint 42ROsset variable op=0RDt0x0N(RXRg(RKRiRW((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyt
test_NULL_ptr�scCs|jdd�dS(s?Ensure that a PyObject* with NULL ob_type is handled gracefullysprint 42sset op->ob_type=0N(R�(RK((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_NULL_ob_type�s	cCs|jdddd�dS(sDEnsure that a PyObject* with a corrupt ob_type is handled gracefullysprint 42sset op->ob_type=0xDEADBEEFR�i*N(R�(RK((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_corrupt_ob_type�s	cCs|jdddd�dS(sDEnsure that a PyObject* with a type with corrupt tp_flags is handledsprint 42sset op->ob_type->tp_flags=0x0R�i*N(R�(RK((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_corrupt_tp_flagss	cCs|jdddd�dS(sCEnsure that a PyObject* with a type with corrupt tp_name is handledsprint 42s#set op->ob_type->tp_name=0xDEADBEEFR�i*N(R�(RK((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_corrupt_tp_names	cCs|jdddd�dS(sBEnsure that a PyInstanceObject with with a NULL in_dict is handleds:
class Foo:
    pass
foo = Foo()
foo.an_int = 42
print foos(set ((PyInstanceObject*)op)->in_dict = 0R�tFooN(R�(RK((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_NULL_instance_dictscCsH|jddt�\}}tjd|�}|j|dd|�dS(sAEnsure that the new-style class _Helper in site.py can be handledsprint __builtins__.helpRPs<_Helper at remote 0x[0-9a-f]+>RYsUnexpected rendering %rN(RXR
RRRZ(RKRiRWR=((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_builtins_helpscCsN|jd�\}}|j|d�|jd�\}}|j|d�dS(sbEnsure that a reference loop involving a list doesn't lead proxyval
        into an infinite loop:s%a = [3, 4, 5] ; a.append(a) ; print as[3, 4, 5, [...]]s/a = [3, 4, 5] ; b = [a] ; a.append(b) ; print as[3, 4, 5, [[...]]]N(RXRg(RKRiRW((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_selfreferential_list&scCs)|jd�\}}|j|d�dS(sbEnsure that a reference loop involving a dict doesn't lead proxyval
        into an infinite loop:s/a = {} ; b = {'bar':a} ; a['foo'] = b ; print as{'foo': {'bar': {...}}}N(RXRg(RKRiRW((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_selfreferential_dict3scCs?|jd�\}}|jtjd|�d||f�dS(Ns<
class Foo:
    pass
foo = Foo()
foo.an_attr = foo
print foos/<Foo\(an_attr=<\.\.\.>\) at remote 0x[0-9a-f]+>s$Unexpected gdb representation: %r
%s(RXRZRR(RKRiRW((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyt'test_selfreferential_old_style_instance;scCsz|jd�\}}|jtjd|�d||f�|jd�\}}|jtjd|�d||f�dS(NsD
class Foo(object):
    pass
foo = Foo()
foo.an_attr = foo
print foos/<Foo\(an_attr=<\.\.\.>\) at remote 0x[0-9a-f]+>s$Unexpected gdb representation: %r
%ssT
class Foo(object):
    pass
a = Foo()
b = Foo()
a.an_attr = b
b.an_attr = a
print asV<Foo\(an_attr=<Foo\(an_attr=<\.\.\.>\) at remote 0x[0-9a-f]+>\) at remote 0x[0-9a-f]+>(RXRZRR(RKRiRW((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyt'test_selfreferential_new_style_instanceHscCsI|jd�\}}|j|d�|jt|�dtd��dS(s)Verify that very long output is truncatedsprint range(1000)s[0, 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, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226...(truncated)is...(truncated)N(RXRgtlen(RKRiRW((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_truncationcs
	cCs)|jd�\}}|j|d�dS(Ns	print lens<built-in function len>(RXRg(RKRiRW((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_builtin_functionscCs?|jd�\}}|jtjd|�d||f�dS(Ns&import sys; print sys.stdout.readliness@<built-in method readlines of file object at remote 0x[0-9a-f]+>s$Unexpected gdb representation: %r
%s(RXRZRR(RKRiRW((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_builtin_method�s
cCsN|jdddddg�}|jtjd|tj�d||f�dS(Ns<
def foo(a, b, c):
    pass

foo(3, 4, 5)
print foo.__code__RNRAROs;print (PyFrameObject*)(((PyCodeObject*)op)->co_zombieframe)sK.*\s+\$1 =\s+Frame 0x[0-9a-f]+, for file <string>, line 3, in foo \(\)\s+.*s$Unexpected gdb representation: %r
%s(RTRZRRRU(RKRW((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_frames�s	N($RaRbReRRjRlRmRnRqRsRtRwRxR~R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�(((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyRdsB															
	!	
						
	
		
				tPyListTestscBs,eZd�Zd�Zd�Zd�ZRS(cCs|j||�dS(N(R](RKtexpectedR[((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyt
assertListing�scCs5|jd|j�ddg�}|jd|�dS(s'Verify that the "py-list" command worksRMROspy-lists�   5    
   6    def bar(a, b, c):
   7        baz(a, b, c)
   8    
   9    def baz(*args):
 >10        print(42)
  11    
  12    foo(1, 2, 3)
N(RTR`R�(RKtbt((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_basic_command�s	cCs5|jd|j�ddg�}|jd|�dS(s7Verify the "py-list" command with one absolute argumentRMROs	py-list 9sL   9    def baz(*args):
 >10        print(42)
  11    
  12    foo(1, 2, 3)
N(RTR`R�(RKR�((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_one_abs_arg�s	cCs5|jd|j�ddg�}|jd|�dS(s8Verify the "py-list" command with two absolute argumentsRMROspy-list 1,3sR   1    # Sample script for use by test_gdb.py
   2    
   3    def foo(a, b, c):
N(RTR`R�(RKR�((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_two_abs_args�s	(RaRbR�R�R�R�(((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyR��s			tStackNavigationTestscBs�eZejed�eje�d�d���Zejed�d��Zejed�eje�d�d���Z	ejed�eje�d�d���Z
RS(s$test requires py-up/py-down commandss&Python was compiled with optimizationscCs5|jd|j�ddg�}|j|d�dS(s%Verify that the "py-up" command worksRMROspy-upsn^.*
#[0-9]+ Frame 0x[0-9a-f]+, for file .*gdb_sample.py, line 7, in bar \(a=1, b=2, c=3\)
    baz\(a, b, c\)
$N(RTR`R_(RKR�((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_pyup_command�s	cCs5|jd|j�ddg�}|j|d�dS(s7Verify handling of "py-down" at the bottom of the stackRMROspy-downs$Unable to find a newer python frame
N(RTR`R](RKR�((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_down_at_bottom�s	cCs9|jd|j�ddgd�}|j|d�dS(s2Verify handling of "py-up" at the top of the stackRMROspy-upis%Unable to find an older python frame
N(RTR`R](RKR�((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_up_at_top�s	cCs8|jd|j�dddg�}|j|d�dS(s$Verify "py-up" followed by "py-down"RMROspy-upspy-downs�^.*
#[0-9]+ Frame 0x[0-9a-f]+, for file .*gdb_sample.py, line 7, in bar \(a=1, b=2, c=3\)
    baz\(a, b, c\)
#[0-9]+ Frame 0x[0-9a-f]+, for file .*gdb_sample.py, line 10, in baz \(args=\(1, 2, 3\)\)
    print\(42\)
$N(RTR`R_(RKR�((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_up_then_down�s	(RaRbR
t
skipUnlesstHAS_PYUP_PYDOWNtskipIfR;R�R�R�R�(((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyR��st	PyBtTestscBs�eZeje�d�d��Zeje�d�d��Zejed�eje�d�d���Z	eje�d�ejed�d���Z
eje�d�ejed�d���Zeje�d�d��ZRS(s&Python was compiled with optimizationscCs5|jd|j�ddg�}|j|d�dS(s%Verify that the "py-bt" command worksRMROspy-bts^.*
Traceback \(most recent call first\):
  File ".*gdb_sample.py", line 10, in baz
    print\(42\)
  File ".*gdb_sample.py", line 7, in bar
    baz\(a, b, c\)
  File ".*gdb_sample.py", line 4, in foo
    bar\(a, b, c\)
  File ".*gdb_sample.py", line 12, in <module>
    foo\(1, 2, 3\)
N(RTR`R_(RKR�((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_bt�s	cCs5|jd|j�ddg�}|j|d�dS(s*Verify that the "py-bt-full" command worksRMROs
py-bt-fulls>^.*
#[0-9]+ Frame 0x-?[0-9a-f]+, for file .*gdb_sample.py, line 7, in bar \(a=1, b=2, c=3\)
    baz\(a, b, c\)
#[0-9]+ Frame 0x-?[0-9a-f]+, for file .*gdb_sample.py, line 4, in foo \(a=1, b=2, c=3\)
    bar\(a, b, c\)
#[0-9]+ Frame 0x-?[0-9a-f]+, for file .*gdb_sample.py, line 12, in <module> \(\)
    foo\(1, 2, 3\)
N(RTR`R_(RKR�((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_bt_fulls	s*Python was compiled without thread supportcCsZd}|j|ddg�}|jd|�|j|ddg�}|jd|�dS(sBVerify that "py-bt" indicates threads that are waiting for the GILsP
from threading import Thread

class TestThread(Thread):
    # These threads would run forever, but we'll interrupt things with the
    # debugger
    def run(self):
        i = 0
        while 1:
             i += 1

t = {}
for i in range(4):
   t[i] = TestThread()
   t[i].start()

# Trigger a breakpoint on the main thread
print 42

ROsthread apply all py-btsWaiting for the GILsthread apply all py-bt-fullN(RTtassertIn(RKRRRW((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_threadsscCsfd}|j|ddddg�}|jd|�|j|ddddg�}|jd|�dS(	s?Verify that "py-bt" indicates if a thread is garbage-collectingsTfrom gc import collect
print 42
def foo():
    collect()
def bar():
    foo()
bar()
ROsbreak update_refstcontinuespy-btsGarbage-collectings
py-bt-fullN(RTR�(RKRRRW((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_gc:s	cCsid}|j|dddddg�}|jd|�|j|ddddg�}|jd	|�d
S(sAVerify that "py-bt" displays invocations of PyCFunction instancessLfrom time import gmtime
def foo():
    gmtime(1)
def bar():
    foo()
bar()
RNttime_gmtimeROR�spy-bts<built-in function gmtimes
py-bt-fulls#1 <built-in function gmtimeN(RTR�(RKRRRW((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_pycfunctionVscCsgtjd�}ddg}tr1|jd�n|jd�|j|d|�}|j|d�dS(Ns�
            class MyList(list):
                def __init__(self):
                    super(MyList, self).__init__()   # wrapper_call()

            print("first break point")
            l = MyList()
        sbreak wrapper_callR�RCspy-btROs1<method-wrapper u?'__init__' of MyList object at (ttextwraptdedentRGtappendRTtassertRegexpMatches(RKRRRORW((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_wrapper_callus	
		(
RaRbR
R�R;R�R�R�tthreadR�R�R�R�(((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyR��s$	!		tPyPrintTestscBs�eZeje�d�d��Zejed�eje�d�d���Zeje�d�d��Z	eje�d�d��Z
RS(s&Python was compiled with optimizationscCs5|jd|j�ddg�}|j|d�dS(s(Verify that the "py-print" command worksRMROs
py-print argss".*\nlocal 'args' = \(1, 2, 3\)\n.*N(RTR`R_(RKR�((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyR��s	s$test requires py-up/py-down commandscCs>|jd|j�dddddg�}|j|d�dS(NRMROspy-ups
py-print cs
py-print bs
py-print as3.*\nlocal 'c' = 3\nlocal 'b' = 2\nlocal 'a' = 1\n.*(RTR`R_(RKR�((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_print_after_up�s	cCs5|jd|j�ddg�}|j|d�dS(NRMROspy-print __name__s&.*\nglobal '__name__' = '__main__'\n.*(RTR`R_(RKR�((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_printing_global�s	cCs5|jd|j�ddg�}|j|d�dS(NRMROspy-print lens/.*\nbuiltin 'len' = <built-in function len>\n.*(RTR`R_(RKR�((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_printing_builtin�s	(RaRbR
R�R;R�R�R�R�R�R�(((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyR��st
PyLocalsTestscBsVeZeje�d�d��Zejed�eje�d�d���ZRS(s&Python was compiled with optimizationscCs5|jd|j�ddg�}|j|d�dS(NRMROs	py-localss.*\nargs = \(1, 2, 3\)\n.*(RTR`R_(RKR�((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyR��s	s$test requires py-up/py-down commandscCs8|jd|j�dddg�}|j|d�dS(NRMROspy-ups	py-localss.*\na = 1\nb = 2\nc = 3\n.*(RTR`R_(RKR�((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyttest_locals_after_up�s	(	RaRbR
R�R;R�R�R�R�(((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyR��s
cCsXtjr;dttfGHx tj�D]}d|GHq%Wntttt	t
tt�dS(NsGDB version %s.%s:t is    (
RtverboseR-R.tgdb_versionRJRRdR�R�R�R�R�(RS((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyt	test_main�s	t__main__(4tlocaleR)RRRHRR�R
ttestRttest.test_supportRRR�tImportErrorRRR�R-R.RtplatformRtpathtjointdirnameRIR/R&RGR5tis_python_buildt
gdbpy_versionR<RRtgdbpy_errorsRYtrstripR;R?R�tTestCaseR@R�RdR�R�R�R�R�R�Ra(((s4/usr/local/python-2.7/lib/python2.7/test/test_gdb.pyt<module>sl

				
		
				�	��	(/�#	

© 2025 GrazzMean