Sindbad~EG File Manager
�
��g � �� � d dl Z d dlZd dlZd dlZd dlZd dlmZmZ d dlZej d dk rej d dk rej
Znej Z ej
� � Zda G d� de� � Zdd �Zdd�Zd� Zd
� Zd� Z G d� de� � Z G d� dej � � Z e� � Z G d� dej � � Z e� � Zej fd�Zej fd�Zej fd�Z ed� � � Z!dS )� N)�IntEnum�auto� � � c � � e Zd ZdS )�DAPExceptionN)�__name__�
__module__�__qualname__� � �./gdb/dap/startup.pyr r . s � � � � � ��Dr r Fc � � t j | |�� � S # t $ r"}t t |� � � � |�d }~ww xY w)N)�global_context)�gdb�parse_and_eval� Exceptionr �str)�
expressionr �es r r r 4 sT � �*��!�*�^�L�L�L�L��� *� *� *� �3�q�6�6�"�"��)�����*���s � �
A�?�Ar
c �j �� �fd�}t j | ||d�� � }|� � � |S )z�Start a new thread, invoking TARGET with *ARGS there.
This is a helper function that ensures that any GDB signals are
correctly blocked.c �� �� �| � nK# t $ r>}|�dt |� � ��}t d|z � � t � � Y d }~nd }~ww xY wt d� � d S # t d� � w xY w)Nz, zcaught exception: �terminating)r �type�
thread_log� log_stack)�args�err�
err_string�targets �r �thread_wrapperz$start_thread.<locals>.thread_wrapperB s� �� � &��F�D�M�M�M��� � � �%(�S�S�$�s�)�)�)�4�J��+�j�8�9�9�9��K�K�K�K�K�K�K�K����� ����
�}�%�%�%�%�%��J�}�%�%�%�%���s+ � �A% �
A�4A�A% �A�A% �%A6T)�namer! r �daemon)r �Thread�start)r# r! r r"