<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

e fGI                 @   s   d  d l  Z  d  d l Z d  d l Td  d l m Z d  d l m Z d  d l m Z Gd d   d e j	  Z
 Gd d	   d	  Z Gd
 d   d e  Z Gd d   d  Z d S)    N)*)ListedToplevel)ScrolledList)macosxSupportc               @   sL   e  Z d  Z d d   Z d d   Z d d   Z d d   Z d	 d
   Z d S)Idbc             C   s   | |  _  t j j |   d  S)N)guibdbBdb__init__)selfr    r   5/opt/alt/python34/lib64/python3.4/idlelib/Debugger.pyr
      s    	zIdb.__init__c             C   s\   |  j  |  r |  j   d  S|  j |  } y |  j j | |  Wn t k
 rW Yn Xd  S)N)in_rpc_codeset_step_Idb__frame2messager   interactionZTclError)r   framemessager   r   r   	user_line   s    
zIdb.user_linec             C   sF   |  j  |  r |  j   d  S|  j |  } |  j j | | |  d  S)N)r   r   r   r   r   )r   r   infor   r   r   r   user_exception   s
    
zIdb.user_exceptionc             C   sL   | j  j j d  r d S| j } | j  j j d  r; d S|  j |  Sd  S)Nzrpc.pyTzDebugger.pyF)f_codeco_filenamecountf_backr   )r   r   Z
prev_framer   r   r   r       s    	zIdb.in_rpc_codec             C   sf   | j  } | j } | j } t j j |  } d | | f } | j d k rb d | | j f } n  | S)Nz%s:%s?z%s: %s())r   r   f_linenoospathbasenameco_name)r   r   codefilenamelinenor   r   r   r   r   Z__frame2message*   s    			zIdb.__frame2messageN)__name__
__module____qualname__r
   r   r   r   r   r   r   r   r   r   	   s
   

r   c               @   sT  e  Z d  Z d Z Z Z Z d d d  Z d d   Z d d d  Z	 d d	   Z
 d d
 d  Z d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z d Z d d   Z d d   Z d  d!   Z d Z d Z d" d#   Z d$ d%   Z d& d' d(  Z d) d*   Z d+ d,   Z d- d.   Z d/ d0   Z  d S)1DebuggerNc             C   sV   | d  k r t  |   } n  | |  _ | |  _ d  |  _ |  j   d |  _ d |  _ d  S)Nr   )r   pyshellidbr   make_guiinteractingnesting_level)r   r(   r)   r   r   r   r
   9   s    			
	zDebugger.__init__c                sm    j  d k r?  j    j j d    f d d    d  Sz d  _  j j     SWd  d  _ Xd  S)Nr   d   c                  s    j      S)N)runr   )argsr   r   r   <lambda>c   s    zDebugger.run.<locals>.<lambda>   )r,   
abort_looprootafterr+   r)   r.   )r   r/   r   )r/   r   r   r.   C   s    
"	zDebugger.runc             C   s}   y |  j    Wn t k
 r" Yn X|  j r= |  j j   d  S|  j r_ |  j j   d  |  _ n  |  j j   |  j j	   d  S)N)
quit	Exceptionr+   topZbellstackviewercloser(   Zclose_debuggerdestroy)r   eventr   r   r   r9   k   s    		 zDebugger.closec             C   s  |  j  } | j |  _ | j |  _ } t |  |  _ } |  j j d  |  j j d  | j d |  j  |  j j	 d |  j  t
 |  |  _ } |  j j d d  g  |  _ } t | d d d	 |  j |  _ } | j |  t | d d
 d	 |  j |  _ } | j |  t | d d d	 |  j |  _ } | j |  t | d d d	 |  j |  _ } | j |  t | d d d	 |  j |  _ } | j |  x. | D]& } | j d d  | j d d  qWt
 |  |  _ } |  j j d d  |  j s$t |  |  j _ |  j j d  n  t | d d d	 |  j  d |  j |  _! |  j! j" d d d d  |  j# st |  |  j _# n  t | d d d	 |  j$ d |  j# |  _% |  j% j" d d d d  |  j& st |  |  j _& |  j& j d  n  t | d d d	 |  j' d |  j& |  _( |  j( j" d d d d  |  j) sNt |  |  j _) n  t | d d d	 |  j* d |  j) |  _+ |  j+ j" d d d d  t, | d d |  _- |  j- j d d  t, | d d |  _. |  j. j d d d d  |  j. j/ d  |  _0 t
 | d d |  _1 |  j1 j d d d d   t
 |  |  _2 |  j2 j d d d d   t
 | d d |  _3 |  j3 j d d d d   |  j j4   r|  j    n  |  j& j4   r|  j'   n  |  j) j4   r|  j*   n  d  S)!NzDebug ControlZDebugZWM_DELETE_WINDOWz<Escape>anchorwtextZGocommandZStepZOverZOutZQuitstatedisabledsideleftr1   ZStackZvariablerowr   columnZSourceLocalsGlobalsfillx
backgroundheightexpandboth)5r(   flistr3   r   r7   Zwm_titleZwm_iconnameZwm_protocolr9   ZbindFramebframepackbuttonsZButtoncontZbcontappendstepZbstepnextZbnextretZbretr5   	configurecframevstackZ
BooleanVar	__class__setZCheckbutton
show_stackZbstackgridvsourceshow_sourceZbsourcevlocalsshow_localsZblocalsvglobalsshow_globalsZbglobalsLabelstatuserrorZcgeterrorbgfstackflocalsfglobalsget)r   r(   r3   r7   rP   ZblbrY   r   r   r   r*   |   s    	"""""								zDebugger.make_guic             C   s  | |  _  |  j j d |  | r | \ } } } y | j } Wn" t k
 rb d t |  } Yn X| d  k	 r y d | t |  f } Wq Yq Xn  d } n d } d  } |  j } |  j j d | d |  |  j }	 |	 r|  j	 j
 |  j  |  \ }
 } |	 j |
 |  n  |  j d  |  j j   r7|  j   n  x! |  j D] } | j d d	  qAW|  j j   |  j d 7_ |  j j j d
 d  |  j d 8_ x! |  j D] } | j d d  qW|  j j d d  |  j j d d d |  j  d  |  _  d  S)Nr>   z%sz%s: %sZyellow rJ   r1   r@   ZnormalZvwaitz::idledebugwaitrA   )r   rf   rX   r$   AttributeErrorstrrh   rg   r8   r)   	get_stack
load_stackshow_variablesr_   rl   sync_source_linerR   r7   wakeupr,   r3   tkcall)r   r   r   r   typevaluetbZm1Zbgsvstackirm   r   r   r   r      sH    				zDebugger.interactionc             C   sx   |  j  } | s d  S|  j |  \ } } | d  d  | d d   d k rt t j j |  rt |  j j | |  n  d  S)Nr1   z<>)r   _Debugger__frame2fileliner   r   existsrN   Zgotofileline)r   r   r"   r#   r   r   r   rt      s    	6zDebugger.sync_source_linec             C   s%   | j  } | j } | j } | | f S)N)r   r   r   )r   r   r!   r"   r#   r   r   r   Z__frame2fileline   s    			zDebugger.__frame2filelinec             C   s   |  j  j   |  j   d  S)N)r)   Zset_continuer2   )r   r   r   r   rS     s    zDebugger.contc             C   s   |  j  j   |  j   d  S)N)r)   r   r2   )r   r   r   r   rU   
  s    zDebugger.stepc             C   s!   |  j  j |  j  |  j   d  S)N)r)   Zset_nextr   r2   )r   r   r   r   rV     s    zDebugger.nextc             C   s!   |  j  j |  j  |  j   d  S)N)r)   Z
set_returnr   r2   )r   r   r   r   rW     s    zDebugger.retc             C   s   |  j  j   |  j   d  S)N)r)   Zset_quitr2   )r   r   r   r   r5     s    zDebugger.quitc             C   s   |  j  j j d d d  d  S)Nr\   z::idledebugwait1)r3   rv   rw   )r   r   r   r   r2     s    zDebugger.abort_loopc             C   s   |  j  ru |  j j   ru t |  j |  j |   |  _  } |  j r |  j j |  j d   \ } } | j	 | |  q nB |  j  } | r |  j j   r d  |  _  | j
   n  d |  j d <d  S)Nr1   rK   )r8   rZ   rl   StackViewerri   rN   r   r)   rq   rr   r9   )r   r{   r|   r}   r   r   r   r]     s    			zDebugger.show_stackc             C   s    |  j  j   r |  j   n  d  S)N)r_   rl   rt   )r   r   r   r   r`   ,  s    zDebugger.show_sourcec             C   s   | d |  _  |  j   d  S)Nr   )r   rs   )r   Z	stackitemr   r   r   
show_frame0  s    zDebugger.show_framec             C   sp   |  j  } |  j j   r9 | sb t |  j d  |  _  qb n) | rb d  |  _  | j   d |  j d <n  |  j   d  S)NrF   r1   rK   )localsviewerra   rl   NamespaceViewerrj   r9   rs   )r   lvr   r   r   rb   7  s    		
zDebugger.show_localsc             C   sp   |  j  } |  j j   r9 | sb t |  j d  |  _  qb n) | rb d  |  _  | j   d |  j d <n  |  j   d  S)NrG   r1   rK   )globalsviewerrc   rl   r   rk   r9   rs   )r   gvr   r   r   rd   C  s    		
zDebugger.show_globalsr   c             C   s   |  j  } |  j } |  j } | s. d  } } n3 | j } | j } | ra | ra | | k ra d  } n  | r | j | | |  j j j  n  | r | j | | |  j j j  n  d  S)N)	r   r   r   f_locals	f_globals	load_dictr(   ZinterpZrpcclt)r   forcer   r   r   ZldictZgdictr   r   r   rs   O  s    						zDebugger.show_variablesc             C   s   |  j  j | |  d  S)N)r)   Z	set_break)r   r"   r#   r   r   r   set_breakpoint_here_  s    zDebugger.set_breakpoint_herec             C   s   |  j  j | |  d  S)N)r)   Zclear_break)r   r"   r#   r   r   r   clear_breakpoint_hereb  s    zDebugger.clear_breakpoint_herec             C   s   |  j  j |  d  S)N)r)   Zclear_all_file_breaks)r   r"   r   r   r   clear_file_breakse  s    zDebugger.clear_file_breaksc             C   sj   xc |  j  j j D]R } | j j } y( x! | j D] } |  j | |  q/ WWq t k
 ra w Yq Xq Wd S)z=Load PyShellEditorWindow breakpoints into subprocess debuggerN)r(   rN   Zinversedictior"   Zbreakpointsr   ro   )r   Zeditwinr"   r#   r   r   r   load_breakpointsh  s    zDebugger.load_breakpoints)!r$   r%   r&   rZ   r_   ra   rc   r
   r.   r9   r*   r   rt   r   rS   rU   rV   rW   r5   r2   r8   r]   r`   r   r   r   rb   rd   rs   r   r   r   r   r   r   r   r   r'   5   s6   
(K1r'   c               @   s   e  Z d  Z d d   Z d d d  Z d d   Z d d	   Z d
 d   Z d d   Z d d   Z	 d d   Z
 d d   Z d S)r   c             C   sT   t  j   r t j |  |  n t j |  | d d | |  _ | |  _ g  |  _ d  S)NwidthP   )r   ZisAquaTkr   r
   rN   r   r|   )r   masterrN   r   r   r   r   r
   t  s    		zStackViewer.__init__Nc             C   s%  | |  _  |  j   x t t |   D] } | | \ } } y | j d } Wn d } Yn X| j } | j } | j }	 d d  l }
 |
 j	 | |  } | j
   } |	 d k r d | | | f } n d | |	 | | f } | | k r d | } n  |  j |  q& W| d  k	 r!|  j |  n  d  S)	Nr$   r   r   rn   z%s, line %d: %sz%s.%s(), line %d: %sz> )r   rn   N)r|   clearrangelenr   r   r   r    	linecachegetlinestriprT   Zselect)r   r|   indexr}   r   r#   modnamer!   r"   Zfuncnamer   Z
sourcelineitemr   r   r   rr     s.    	
				zStackViewer.load_stackc             C   s   |  j  r t j |  |  Sd S)zoverride base methodN)r|   r   popup_event)r   r;   r   r   r   r     s    	zStackViewer.popup_eventc             C   s?   |  j  } | j d d d |  j  | j d d d |  j  d S)zoverride base methodlabelzGo to source liner?   zShow stack frameN)menuZadd_commandgoto_source_lineshow_stack_frame)r   r   r   r   r   	fill_menu  s
    	
zStackViewer.fill_menuc             C   sC   d | k o  t  |  j  k  n r? |  j j |  j |  n  d S)zoverride base methodr   N)r   r|   r   r   )r   r   r   r   r   	on_select  s    %zStackViewer.on_selectc             C   s   |  j  |  d S)zoverride base methodN)r`   )r   r   r   r   r   	on_double  s    zStackViewer.on_doublec             C   s#   |  j  j d  } |  j |  d  S)Nactive)listboxr   r`   )r   r   r   r   r   r     s    zStackViewer.goto_source_linec             C   sU   |  j  j d  } d | k o2 t |  j  k  n rQ |  j j |  j |  n  d  S)Nr   r   )r   r   r   r|   r   r   )r   r   r   r   r   r     s    %zStackViewer.show_stack_framec             C   s   d | k o  t  |  j  k  n s) d  S|  j | \ } } | j } | j } t j j |  r |  j j |  } | r | j	 |  q n  d  S)Nr   )
r   r|   r   r   r   r   isfilerN   openZgotoline)r   r   r   r#   r!   r"   Zeditr   r   r   r`     s    %		zStackViewer.show_source)r$   r%   r&   r
   rr   r   r   r   r   r   r   r`   r   r   r   r   r   r  s   r   c               @   sC   e  Z d  Z d d d  Z d
 Z d d d d  Z d d	   Z d S)r   Nc          	   C   s  d } d } | r% d t  |  } n  | |  _ | |  _ d d  l } | j   |  _ d |  j _ d |  j _ t |  |  _	 } |  j	 j
 d d d d  t | d	 | d
 d d d |  _ |  j j
 d d  t | d d |  _ } | j
 d d d d  t | d t d t d |   d d d | | f |  _ }	 |	 j
 d d d d d d  |	 j | d <| j |	 d <t |	  |  _ }
 |	 j d d d |
 d d |  _ |  j |  d  S)Nr   (      <   rL   r1   rH   rM   r>   borderwidth   ZreliefZgrooverI   namevbarrB   rightyrK   i,  scrollregionrC   r?   ZyscrollcommandZwindowr<   nw)r   r   titlereprlibReprrepr	maxstringmaxotherrO   r   rQ   re   r   Z	Scrollbarr   ZCanvasminmaxcanvasZyviewr\   subframeZcreate_windowZsfidr   )r   r   r   dictr   rK   r   r   r   r   r   r   r   r   r
     s2    		!	!zNamespaceViewer.__init__r1   r   c             C   s  | |  j  k r | r d  S|  j } |  j } x' t | j j    D] } | j   qB Wd  |  _  | s t | d d } | j d d d d  n | j	   } t
 |  }	 d }
 x |	 D] } | | } |  j j |  } | r | d d  } n  t | d | } | j d |
 d d d d  t | d	 d d
 d } | j d |  | j d |
 d d d d  |
 d }
 q W| |  _  | j   | j   } | j   } |  j } d d | | f |  j d <| d k rd | d <| j d d  n | | d <| j d d  d  S)Nr>   NonerD   r   rE   r1   Zstickyr   r   r   r   i,  rK   rL   r~   )r   r   r   listZchildrenvaluesr:   re   r^   keyssortedr   ZEntryinsertZupdate_idletasksZwinfo_reqwidthZwinfo_reqheightr   rQ   )r   r   r   Z
rpc_clientr   r   clZ	keys_listnamesrD   r   ry   Zsvaluer   rK   r   r   r   r   r     sF    			
	
	

zNamespaceViewer.load_dictc             C   s   |  j  j   d  S)N)r   r:   )r   r   r   r   r9     s    zNamespaceViewer.closer~   )r$   r%   r&   r
   r   r   r9   r   r   r   r   r     s   6r   )r   r   ZtkinterZidlelib.WindowListr   Zidlelib.ScrolledListr   Zidlelibr   r	   r   r'   r   r   r   r   r   r   <module>   s   
, >S