| Current File : //usr/local/lib/python3.6/site-packages/ptrace/debugger/__pycache__/child.cpython-36.pyc |
3
�d% � @ s, d Z ddlmZmZmZmZmZmZmZm Z m
Z
mZmZm
Z
ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ dd lZdd lZyed
�ZW n ek
r� dZY nX G dd
� d
e�ZG dd� de�Zdd� Z dd� Z!dd� Z"dd� Z#dd� Z$df fdd�Z%dd� Z&d df fdd �Z'd S )!zL
Error pipe and serialization code comes from Python 2.5 subprocess module.
� )�fork�execvp�execvpe�waitpid�close�dup2�pipe�read�write�devnull�sysconf�set_inheritable)�exc_info)�format_exception)�ptrace_traceme)�PtraceError)�exit)�EINTRN�SC_OPEN_MAX� c @ s e Zd ZdS )�
ChildErrorN)�__name__�
__module__�__qualname__� r r �>/tmp/pip-build-in2aja_b/python-ptrace/ptrace/debugger/child.pyr s r c @ s e Zd ZdS )�ChildPtraceErrorN)r r r r r r r r s r c
C sJ y
t j}W n tk
r" d}Y nX t j | t j�}t j | t j||B � d S )N� )�fcntl�
FD_CLOEXEC�AttributeError�F_GETFD�F_SETFD)�fdZcloexec_flag�oldr r r �_set_cloexec_flag s
r% c C sH xBy
t | |�S tk
r> } z|jtkr,wn� W Y dd}~X qX qW dS )z%Like os.waitpid, but retries on EINTRN)r �OSError�errnor )�pid�options�er r r �_waitpid_no_intr) s
r+ c C sH xBy
t | |�S tk
r> } z|jtkr,wn� W Y dd}~X qX qW dS )z"Like os.read, but retries on EINTRN)r r&