| Current File : //proc/self/root/usr/local/lib/python3.6/site-packages/ptrace/__pycache__/tools.cpython-36.pyc |
3
�dH � @ s� d dl mZ d dlmZmZmZ d dlmZmZ d dlm Z m
Z
mZmZm
Z
d dlmZmZmZmZ dd� Zdd � Zd
efdd�Zejd �ejd � Zed
dd�Zdd� Zdd� Zdd� Zdd� Zdd� Z d
S )� )�sizeof)�formatUintHex16�formatUintHex32�
formatWordHex)�datetime� timedelta)�getenv�access�X_OK�pathsep�getcwd)�join�isabs�dirname�normpathc C s� t dd� |jD ��}d| }xh|jD ]^\}}t||�}|| }t|�dkrTt|�}nt|�dkrjt|�}nt|�}| d||f � q$W dS )zA
Dump all registers using log callback (write one line).
c s s | ]\}}t |�V qd S )N)�len)�.0�name�type� r �5/tmp/pip-build-in2aja_b/python-ptrace/ptrace/tools.py� <genexpr> s zdumpRegs.<locals>.<genexpr>z%% %us� � z%s = %sN)�max�_fields_�getattrr r r r )�log�regs�widthZname_formatr r �valuer r r �dumpRegs s
r! c C sJ g }x.|D ]&\}}| |@ sq
|j |� | | @ } q
W | rF|j t| �� |S )a>
Extract bits from the integer value using a list of bit masks.
bitmasks is a list of tuple (mask, text).
>>> bitmask = (
... (1, "exec"),
... (2, "write"),
... (4, "read"))
...
>>> readBits(5, bitmask)
['exec', 'read']
>>> readBits(12, bitmask)
['read', '8']
)�append�str)r �bitmasksZbitset�mask�itemr r r �readBits s
r'