+
    VBi                         ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	H
t
 ^ RIt^ RIt^ RIHu Ht ^ RIHt ] P*                  P-                  ] P*                  P/                  ]4      4      t] P*                  P5                  ]R4      t] P*                  P5                  ]R4      t]! ]4      ;_uu_ 4       t]! ]^4       U Uu/ uF  w  rVPA                  4       V bK  	  upp t!RRR4       Rs"R t# ! R R]PH                  4      t% ! R	 R
]%4      t& ! R R]&4      t'](R8X  d   ]PR                  ! 4        R# R# u upp i   + '       g   i     Lb; i)    N)	ccompiler)Cygdbcodefilecfuncs.cc                     \         e   \         # Rs  \        P                  ! . RO\        P                  R7      p V P	                  4       w  rRp\
        P                  ! W1P                  RR4      4      pV'       Ed   \        \        \        VP                  4       4      4      pV^^.8  d   Rs \        P                  ! RR	7      ;_uu_ 4       pVP                  R
4       VP!                  4        \        P                  ! RRRVP"                  .\        P                  R7      p V P	                  4       w  r \        \        \        VP                  RR4      P%                  4       4      4      pV^^.8  d   Rs R R R 4       \         '       g   \(        P*                  ! R4       \         #   \         d    R p ELEi ; i  \&         d    Rs  LSi ; i  + '       g   i     L_; i)NFgdb)stdoutzGNU gdb [^\d]*(\d+)\.(\d+)asciiignoreTzw+)modez8python import sys; print("%s %s" % sys.version_info[:2])-batch-xz6Skipping gdb tests, need gdb >= 7.2 with Python >= 2.7)r   z-nxz	--version)have_gdb
subprocessPopenPIPEcommunicaterematchdecodeOSErrorlistmapintgroupstempfileNamedTemporaryFilewriteflushnamesplit
ValueErrorwarningswarn)pr	   _regexgdb_versiongdb_version_numberpython_version_scriptinternal_python_versions           H/usr/lib/python3.14/site-packages/Cython/Debugger/Tests/TestLibCython.pytest_gdbr-      s   H	H8Q
 MMO	-hhummGX&FG{!#c;+=+=+?"@A!Q'H,,$77;P%++NP%++-$$eXt=R=W=W%X,6OO=MMO	%.23sFMM'S[<\<b<b<d3e.f+.!Q7#( 8 8NOO=  0 " %$H% 87s=   (F) A(G7AF=)F:9F:=G
GGGG 	c                   ,   a  ] tR t^Et o R tR tRtV tR# )DebuggerTestCasec                   \        4       '       g   R# \        P                  ! 4       V n        \        P
                  P                  V P                  R4      V n        \        P
                  P                  V P                  RR4      V n        \        P
                  P                  V P                  R4      V n	        \        P                  ! 4       V n         \        P                  ! V P                  4       \        P                  ! \        V P                  4       \        P                  ! \         V P                  R,           4       \        P                  ! \         P#                  RR4      V P                  R,           4       \$        P&                  ! 4       pVP)                  R.R	R
.R7       \+        V P                  RV P                  R7      p\,        P.                  ! 4       p\0        P2                  ! RRV P                  RRR\0        P4                  ! \        4      /VB p\7        \        P8                  R4      p\:        P<                  pV\:        n        VP?                  4         VP@                  ! RRV P                  RRRRRRR	RV P                  //VB  VPC                  VR,          VR,          VR,          RRR./R7       VPE                  4        V\:        n        VPG                  4        R#   TPE                  4        T\:        n        TPG                  4        i ; i   \        P                  ! T P                  4       h ; i)zu
Run gdb and have cygdb import the debug information from the code
defined in TestParseTreeTransforms's setUp method
Nzcodefile.pyxcython_debugcython_debug_info_codefilecfuncsz.cz.hr   Tz-fPIC)debugextra_postargsr   )test_directorymodulemodule_pathworkdircleanup_workdirFtagsw	targetdirincdirannotateextra_compile_options	gdb_debug
output_dirr6   r7   extra_objectszcfuncs.o)r6   r7   r9   r>   extra_extension_args )$r-   r   mkdtemptempdirospathjoindestfile
debug_destcfuncs_destfilegetcwdcwdchdirshutilcopyr   cfuncs_filereplacer   new_compilercompiledict	build_extOptimizationruntestsCythonCompileTestCase
parse_tagsopendevnullsysstderrdisable_optimization
run_cythonrun_distutilsrestore_stateclose)selfcompileroptsoptimization_disablercython_compile_testcase
new_stderrr`   s   &      r,   setUpDebuggerTestCase.setUpG   s   
 zz'')T\\>B'',,t||&4&BD  "ww||DLL(C99;H	HHT\\"KK$--0KKT%9%9D%@AKK++D$7,,t35 !--/Hj\wiP#||! MMD %.$:$:$<!&.&D&D '' !&' ((2	'
 '# bjj#.JZZF#CJ!668#'22 	"ll		 #	
 $D$T\\+		 	 (55#'(8#9> !12*9:,)G 6  &335#
  " &335#
  "	HHTXXs&   FL& )A K6 	+L& 6-L##L& &#M	c                    \        4       '       g   R # \        P                  ! V P                  4       \        P
                  ! V P                  4       R # N)r-   rH   rP   rO   rQ   rmtreerG   )rf   s   &r,   tearDownDebuggerTestCase.tearDown   s,    zz
dll#    )rM   rO   rL   rK   rG   N)__name__
__module____qualname____firstlineno__rl   rq   __static_attributes____classdictcell____classdict__s   @r,   r/   r/   E   s     Xt$ $rs   r/   c                   >   a a ] tR t^t oV 3R ltV 3R ltRtVtV ;t# )GdbDebuggerTestCasec           	     D  < \        4       '       g   R # \        SV `	  4        \        P                  ! R4      p\        P                  ! R\
        P                  R,          : R24      p\        P                  ! V P                  V4      V n
        \        V P                  R4      ;_uu_ 4       pVP                  V4       R R R 4       RRRV P                  R	R
\
        P                  RR.	p. p\        P                  P!                  R4      pV'       d   VP#                  V4       VP#                  \        P$                  P'                  \        P$                  P'                  \        P$                  P)                  \*        P,                  4      4      4      4       \/        \        P                  \        P0                  P3                  V4      R7      p\4        P6                  ! V\4        P8                  \4        P8                  VR7      V n        R #   + '       g   i     ELY; i)Na              python

            import os
            import sys
            import traceback

            def excepthook(type, value, tb):
                traceback.print_exception(type, value, tb)
                sys.stderr.flush()
                sys.stdout.flush()
                os._exit(1)

            sys.excepthook = excepthook

            # Have tracebacks end up on sys.stderr (gdb replaces sys.stderr
            # with an object that calls gdb.write())
            sys.stderr = sys.__stderr__

            end
            z            python

            from Cython.Debugger.Tests import test_libcython_in_gdb
            test_libcython_in_gdb.main(version=:N   Nz)

            end
            ar   r   r   z-nz--argsz-czimport codefile
PYTHONPATH)r   )r	   r`   env)r-   superrl   textwrapdedentr_   version_infocygdbmake_command_filerG   gdb_command_filer]   r   
executablerH   environgetappendrI   dirnameabspathCython__file__rW   pathseprJ   r   r   r   r%   )	rf   prefix_codecodefargspathsrI   r   	__class__s	   &       r,   rl   GdbDebuggerTestCase.setUp   st   zzoo ' ,  ##B'' * + !& 7 78C!E $''--GGDM . xt'<'<dH&79 zz~~l+LLRWW__RWW__GGOOFOO,&. / 	02::"**//%*@A!!????	 .--s   ,HH	c                  < \        4       '       g   R #  \        SV `	  4        V P                  '       dc   V P                  P                  P                  4        T P                  P                  P                  4        T P                  P                  4        \        P                  ! V P                  4       R #     Ld; i    LG; i  \        P                  ! T P                  4       i ; iro   )r-   r   rq   r%   r	   re   r`   waitrH   remover   )rf   r   s   &r,   rq   GdbDebuggerTestCase.tearDown   s    zz		-GvvvVV]]((*VV]]((*IId++,  IId++,s4    C $B9 $C  =C 9B=;C  CC "C))r   r%   )	rt   ru   rv   rw   rl   rq   rx   ry   __classcell__)r   r{   s   @@r,   r}   r}      s     :x- -rs   r}   c                   &   a  ] tR t^t o R tRtV tR# )TestAllc                   \        4       '       g   R # V P                  P                  4       w  rVP                  R4      pVP                  R4      pV P                  P                  pV^8X  dA   \
        P                  P                  V4       \
        P                  P                  V4       R # V^8  dS   RpV: RV: 2pV: RV: 2pV: RV: 2pRV: RV: V: RV: V: 2p\
        P                  P                  V4       R # R # )NzUTF-8z   v INSIDE GDB v   z   v STDERR v   z   ^ INSIDE GDB ^   
z******************************)r-   r%   r   r   
returncoder_   r`   r   )	rf   outerrexit_statusborderstartr`   enderrmsgs	   &        r,   test_allTestAll.test_all   s    zz66%%'jj!jj!ff''!JJS!JJS!AF396BE/5v>F396BC+0#vsCHFJJV$ rs   rE   N)rt   ru   rv   rw   r   rx   ry   rz   s   @r,   r   r      s     % %rs   r   __main__)*rH   r   r_   rQ   r#   r   unittestr   r   	distutilsr   rZ   Cython.Distutils.extensionr   Cython.Distutils.old_build_ext	Distutilsold_build_extrX   Cython.Debuggerr   r   rI   r   r   r   rootrJ   r   rS   r]   r   	enumeratestripsource_to_linenor   r-   TestCaser/   r}   r   rt   main)ilines   00r,   <module>r      s   	 	 
          ! 2 2 *	wwrwwx0177<<j)ggll4,	(^^q7@AGGA

aG  &R`$x(( `$FK-* K-\%! %8 zMMO u H ^s   >ED?
'E?EE	