
    Mh!                         d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlm	Z	 d dl
mZmZ d dlmZ ej        dk    rd dlmZ da	 da	 g Z	 d Zd Zd	 Zd
 Zd ZdS )    N)launcher)log	messaging)outputwin32)winapic                  "    dt           j         dS )NzDebuggee[PID=])processpid     Y/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/debugpy/launcher/debuggee.pydescriber   $   s    )7;))))r   c           
         t          j        d||           t                      }	 |rGt          j                    \  }}t          j                    \  }}|||||hz  }t          ||          }	ni }	t          j        dk    r.t          j        j	        dk    rd }
|	
                    |
           	 t          j        |f|dd|	an:# t          $ r-}t          j        d	                    ||                    d }~ww xY wt          j        d
t%                                 t          j        dk    r	 t&          j                            d d           at'          j                    }t'          j        t3          j        |                    }t&          j                            t,          t&          j        t3          j        |          |t3          j        |                     |j        xj        t&          j         t&          j!        z  z  c_        t&          j        "                    t,          t&          j        t3          j        |          |           t&          j        #                    t&          j$        t&          j%        z  dt          j&                  }t&          j        '                    t,          |           n&# t          $ r t          j(        dd           Y nw xY wtS          j*        tV                     tX          j-        .                    dddt          j&        | t_          j0        d          dz  d           |r]d|t          j1        fd|t          j2        ffD ]>\  }}}tg          j4        t%                      |||           |5                    |           ?tm          j7        tp          d          }d|_9        |:                                 |D ]<}	 t          j;        |           # t          $ r t          j(        d           Y 9w xY wd S # |D ]<}	 t          j;        |           # t          $ r t          j(        d           Y 9w xY ww xY w)NzOSpawning debuggee process:

Command line: {0!r}

Environment variables: {1!r}

)stdoutstderrr   graalpyc                  @   	 t          j                     t          j        t          j        t          j                  } 	 t          j        dt           j                  }	 t          j        |t          j                               t          j	        |           n# t          j	        |           w xY w	 t          j        t          j        |            d S # t          j        t          j        |            w xY w# t          $ r t          j        dd           Y d S w xY w)Nz/dev/ttyzFailed to set up process groupinfolevel)ossetpgrpsignalSIGTTOUSIG_IGNopenO_RDWR	tcsetpgrpgetpgrpclose	Exceptionr   swallow_exception)old_handlerttys     r   
preexec_fnzspawn.<locals>.preexec_fn@   s    JLLL
 #)-"O"OKC gj")<<*Lbjll;;;HSMMMMBHSMMMMMfnkBBBBBfnkBBBB    )8      s@   <C9 C &B C B00C 4C9 !C66C9 9 DD)r'   r   )envbufsizez0Couldn't spawn debuggee: {0}

Command line:{1!r}zSpawned {0}.FzFailed to set up job objectwarningr   r   launchTP   )startMethodisLocalProcesssystemProcessIdnamepointerSizer   r   zwait_for_exit())targetr1   )<r   r   setr   pipedictsysplatformimplementationr1   update
subprocessPopenr   r#   r   MessageHandlingErrorformatr   r   kernel32CreateJobObjectA
job_handle$JOBOBJECT_EXTENDED_LIMIT_INFORMATIONDWORDctypessizeofQueryInformationJobObject!JobObjectExtendedLimitInformationpointerBasicLimitInformation
LimitFlags"JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSEJOB_OBJECT_LIMIT_BREAKAWAY_OKSetInformationJobObjectOpenProcessPROCESS_TERMINATEPROCESS_SET_QUOTAr   AssignProcessToJobObjectr$   atexitregisterkillr   channel
send_eventstructcalcsizer   r   r   CaptureOutputremove	threadingThreadwait_for_exitdaemonstartr"   )process_namecmdliner(   redirect_output	close_fdsstdout_rstdout_wstderr_rstderr_wkwargsr'   excjob_infojob_info_sizeprocess_handlecategoryfdteewait_threads                      r   spawnrq   (   s   H	+ 	   I}7 	 "$Hh!#Hh(HhAAI(;;;FFF<7""s'9'>)'K'K  0 MMZM000	 &wMCMMfMMGG 	 	 	0DKK   	 	,,,<7""&V#_==dDII
!FHH &V]8-D-D E E99<N8,,!N=11   .99 = 8999 77<N8,,!	   "(!<!<,v/GGK" " 88^TTTT V V V%&C9UUUUUUV 	##'"&#*;$%s33a7 		
 		
 		
  	%8SZ08SZ0& % %!"c $XZZ2sCCC  $$$$&mBSTTT!  	7 	7B7 7 7 7%I6666667	7 	7) 	7 	7B7 7 7 7%I6666667	7s   B	P 0C P 
C=(C88C==5P 3FJ9 8P 9 KP KC6P O,,PPQP.-Q.Q	QQ	Qc                     t           d S 	 t                                           t          j        dt	                                 t
          j        dk    r't          j        	                    t          d           d S t          j        t           j        t          j                   d S d S # t           $ r% t          j        dt	                                 Y d S w xY w)NzKilling {0}r   r   zFailed to kill {0})r   pollr   r   r   r7   r8   r   r?   TerminateJobObjectrA   r   killpgr   r   SIGKILLr#   r$   r   r   r   rT   rT      s    @<<>>!H]HJJ///|w&&22:qAAAAA 	'+v~66666 "!  @ @ @2HJJ??????@s   A/B) <)B) )+CCc                  T   	 t                                           t          j        dk    rdk     rdz  n&# t          $ r t          j        d           dY nw xY wt          j        dt                                 t          j
                     t          fdt          D                       } 	 t          j                            dd	i           n# t          $ r Y nw xY w| rt!                       	 t          j                            d
           d S # t          $ r Y d S w xY w)Nr   r      z$Couldn't determine process exit codez{0} exited with code {1}c              3   .   K   | ]} |          V  d S )Nr   ).0predcodes     r   	<genexpr>z wait_for_exit.<locals>.<genexpr>   s+      EETdd4jjEEEEEEr   exitedexitCode
terminated)r   waitr7   r8   r#   r   r$   r   r   r   wait_for_remaining_outputanywait_on_exit_predicatesr   rU   rV   _wait_for_user_input)should_waitr}   s    @r   r]   r]      s[   
||~~<7""taxx
 DLD   DEEE H'T:::
$&&& EEEE-DEEEEEK##Hz4.@AAAA     ##L11111   s3   48  AA4"C 
C$#C$8D 
D'&D'c                  d   t           j        rt           j        rt           j                                        rddlm}  	 dd l}d}n# t          $ r d}Y nw xY w|rc | j        d           t           j        	                    d           t           j        
                                 |                                 d S  | j        d           t           j        	                    d           t           j        
                                 t           j                            d	           d S d S d S d S )
Nr   )r   TFz5msvcrt available - waiting for user input via getch()z Press any key to continue . . . z8msvcrt not available - waiting for user input via read()zPress Enter to continue . . .    )r7   r   stdinisattydebugpy.commonr   msvcrtImportErrordebugwriteflushgetchread)r   r   	can_getchs      r   r   r      sH   
z ci CI$4$4$6$6 &&&&&&	MMM II  	 	 	III	
  		CIMNNNJ?@@@JLLNNNNNCIPQQQJ=>>>JINN1'     s    A AA)rR   rD   r   r   rW   r;   r7   r[   debugpyr   r   r   r   debugpy.launcherr   r8   r   r   rA   r   r   rq   rT   r]   r   r   r   r   <module>r      s*  
   				       



           ) ) ) ) ) ) ) ) # # # # # #<7''''''  9
 R * * *G7 G7 G7T@ @ @$  D    r   