python (3.11.7)

(root)/
lib/
python3.11/
test/
test_gdb/
__pycache__/
util.cpython-311.pyc

e)BddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ej
dpdZej
ejejdZej
ejedZdZdZdZd	Zdd
ddZd
Ze\ZZedkr%ejdeddeddedZedZeZdZGddejZ dS)N)supportgdbz
python-gdb.pyz
gdb_sample.py
builtin_id123cRdtjDS)NcDi|]\}}|d||S)PYTHON)
startswith).0namevalues   F/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_gdb/util.py
<dictcomp>z%clean_environment.<locals>.<dictcomp>s>...KD%??8,,.D%...)osenvironitemsrrclean_environmentrs0..2:+;+;+=+=....r)rrT)exitcodecheckct}|r||tddg}tdkr|ddt
f||t
j|tjtjtjdd|}|j	}|j
}|rA|j|kr6tj
|}	t|	d	|jd
|d|d|	||fS)
zRuns gdb in --batch mode with the additional arguments given by *args.

    Returns its (stdout, stderr) decoded from utf-8 using the replace handler.
    z--batchz-nxz--init-eval-commandzadd-auto-load-safe-path utf8backslashreplace)stdinstdoutstderrencodingerrorsenvz failed with exit code z, expected exit code z	:
stdout=z
stderr=)rupdateGDB_PROGRAMGDB_VERSIONextendCHECKOUT_HOOK_PATH
subprocessrunPIPErr 
returncodeshlexjoin	Exception)
rrargsenv_varsr#cmdprocrr cmd_texts
          rrun_gdbr5!sN


C

8
Cf

)C/ACCE	F	F	FJJt>o 2D[F
[F.H,,:c??8--DO--.6--"(--#)--..	.

Frcj	td\}}n)#t$r}tjd|d}~wwxYwt	jd|}|t
d|z|}t|d}t|d}||f}||fS)Nz	--versionz'Couldn't find gdb program on the path: z ^(?:GNU|HP) gdb.*?\b(\d+)\.(\d+)zunable to parse gdb version: %r)	r5OSErrorunittestSkipTestresearchr/intgroup)rr excmatchversion_textmajorminorversions        rget_gdb_versionrFKsQ --QQQ O# O OPPPQ
I96BBE}9FBCCCLAEAEenG'""s
;6;)rrzIgdb versions before 7.0 didn't support python embedding. Saw gdb version .r7z:
ctddtjd\}}d|vrtjd||stjd|d|vrtjd	dS)
Nz9--eval-command=python import sys; print(sys.version_info)--argsF)rzauto-loading has been declinedz;gdb security settings prevent use of custom hooks; stderr: z4gdb not built with embedded python support; stderr: zmajor=2zgdb built with Python 2)r5sys
executabler:r;)rr s  rcheck_usable_gdbrLjsC#.NFF
(611
"
"
"##	##
"
"
"##	#F 9:::rctjd}|sdS|}d|votd|DS)NCFLAGSFz-mcetc3lK|]/}|do|dV0dS)z-fcf-protection)z=nonez=returnN)r
endswith)rflags  r	<genexpr>z!cet_protection.<locals>.<genexpr>s\''__%677A!]]+?@@@''''''r)	sysconfigget_config_varsplitany)cflagsflagss  rcet_protectionrYsi

%h
/
/FuLLNNE

''' %'''''(rc tjrtdtddtddtD]}td|ztdttdSdS)Nzgdb version rrGr7:z    z
    path: )rverboseprintr&GDB_VERSION_TEXT
splitlinesr%)lines rsetup_moduleras
?[^??k!n???@@@$//11	"	"D'D.!!!!
(;(()))
rc2eZdZdZddedddfdZdZdZdS)
DebuggerTestsz(Test that the debugger can debug Python.NFc*dd|zddg}tdkr|dgz
}|rtr|dgz
}||z
}n|dgz
}d	|D}|d
tjgz
}|tj|s|dgz
}|r|d|gz
}n|r||gz
}t|d
ti\}	}
|s2|
	D]}t|tjd|
vrtj
ddD]}||	vrtj
|d|	S)z
        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
        zset breakpoint pending yeszbreak %szset print address offr*rzset print entry-values nonext	backtracecg|]}d|zS)z--eval-command=%sr)rr2s  r
<listcomp>z1DebuggerTests.get_stack_trace.<locals>.<listcomp>s>>>c#c)>>>rrIz-Sz-cPYTHONHASHSEED)filezPC not savedzKgdb cannot walk the frame object because the Program Counter is not present)z!(frame information optimized out)z*Unable to read information on python framez)(unable to read python frame information)z,Backtrace stopped: frame did not save the PCz ?? ()z found in gdb output)r&CET_PROTECTIONrJrKr'r)_args_from_interpreter_flagsr5rir_r]r r:r;)
selfsourcescript
breakpointcmds_after_breakpointimport_site
ignore_stderrcommandsr0outerrr`patterns
             rget_stack_tracezDebuggerTests.get_stack_traces:
)#
$
.&  455H 		&
%
VH$--HH
%H
?>X>>>!	!J;==>>>	TFND	T6N"DD
	VHDD@@@S	-((
-
-d,,,,,S  #%344
4
	L	LG$#~~'7(J(J(JKKK
rcd||||d|dS)z9Ensure that the given "actual" string ends with "exp_end"z did not end with msgN)
assertTruerP)rmactualexp_ends   rassertEndsWithzDebuggerTests.assertEndsWithsH008>H		J	J	J	J	Jrctj||tj}|s||d|dSdS)Nz did not match rz)r<rADOTALLfail)rmr}rwms    rassertMultilineMatchesz$DebuggerTests.assertMultilineMatches sQHWfbi00	EII66677CIDDDDD	E	Er)__name__
__module____qualname____doc__
BREAKPOINT_FNrxrrrrrrcrcsj22%)$#0.2$)&+	zzzzxJJJ
EEEEErrc)!rr<r-shutilr)rJrSr:testrwhichr%pathr.dirnamerKr(__file__
SAMPLE_SCRIPTrrirr&r5rFr^r;rLrYrkraTestCasercrrr<module>rs 								







fl5!!*UW\\"'//#."A"A"133RW__X66HH

...T'''''T###.!0 1 1+
(
	&q>		,7N				;;;,
(
(
( !!HEHEHEHEHEH%HEHEHEHEHEr