????

Your IP : 3.144.45.224


Current Path : /lib/python3.9/site-packages/pycriu/__pycache__/
Upload File :
Current File : //lib/python3.9/site-packages/pycriu/__pycache__/cli.cpython-39.pyc

a

k�x]�*�@sHddlmZddlZddlZddlZddlZddlZdd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
Gdd�d�Zd8dd�Zdd�Zdadd�Zdd�Zdd�Zdd�Zdd �Zedd!d"�edd#d"�edd$d"�d%�Zd&d'�ZiZd(d)�Zd*d+�ZGd,d-�d-�Zd.d/�Zd0d1�Zeeeed2�Zd3d4�Z d5d6�Z!e"d7k�rDe!�dS)9�)�print_functionNcCs |drt|dd�StjSdS)N�in�rb)�open�sys�stdin��opts�r
�./usr/lib/python3.9/site-packages/pycriu/cli.py�inf
srcCs |drt|dd�StjSdS)N�outzw+)rr�stdoutrr
r
r�outfsrcCsttj�|d|��S)N�dir)r�os�path�join)r	�namer
r
r�dinfsrc
Cs�d}z tj�t|�|d|d�}WnFtjjyj}z*td|jtjd�t�	d�WYd}~n
d}~00|drxd}t
|�}tj|||d�|tj
kr�|�d�dS)	N�pretty�noplzSUnknown magic %#x.
Maybe you are feeding me an image with raw data(i.e. pages.img)?)�file����indent�
)�pycriu�images�loadrZMagicException�print�magicr�stderr�exitr�json�dumpr�write)r	r�img�exc�fr
r
r�decodes  �� 
r+cCs$t�t|��}tj�|t|��dS)N)r%r rrrr&r)r	r(r
r
r�encode0sr,cCs,tj�t|��}tj|tjdd�t�dS)Nrr)	rr�inforr%r&rrr!)r	Zinfsr
r
rr-5sr-cCs ||vr||S|d|dS)NZns_rr
)�p�valr
r
r�get_task_id;sr0c@seZdZdd�ZdS)�ps_itemcCs,t|d�|_|d|_||_||_g|_dS)N�pid�ppid)r0r2r3r.�core�kids)�selfr.r4r
r
r�__init__Es

zps_item.__init__N)�__name__�
__module__�__qualname__r7r
r
r
rr1Dsr1cCsZtd|jt|jd�t|jd�dd||jddf�|jD]}t|||d�q@dS)	Nz%7d%7d%7d   %s%sZpgidZsid� rZtcZcommr)r!r2r0r.r4r5�show_ps)r.r	�depthZkidr
r
rr<Ms���
r<c		Cs�i}tj�t|d��}|dD]<}tj�t|dt|d���}t||dd�}|||j<qd}|D]2}||}|jdkr�|}qd||j}|j�	|�qdt
dd�t||�dS)N�
pstree.img�entrieszcore-%d.imgr2rz%7s%7s%7s   %s)ZPIDZPGIDZSIDZCOMM)rrr rr0r1r2r3r5�appendr!r<)	r	Zpss�ps_imgr.r4�psZpsrr2�ppr
r
r�
explore_psUs$�

rDcCsftdur4ztj�t|d��daWngaYn0tt�dkrDdStD]}|d|krH|SqHdS)Nz	files.imgr?r�id)�	files_imgrrr r�len)r	�ft�fidr*r
r
r�ftype_find_in_filesps

rJcCsht|||�}|r||dS|ddkrBtj�t||��d|d<|dD]}|d|krJ|SqJdS)N�fieldr(r?rE)rJrrr r)r	rHrIr(r*r
r
r�ftype_find_in_image�s
rLcCst|||d�}|r|dpdS)Nz
reg-files.imgrzunknown path�rL)r	rHrIZrfr
r
r�	ftype_reg�srNcCs"t|||d�}|rd|dp dS)Nz	pipes.imgzpipe[%d]Zpipe_idzpipe[?]rM)r	rHrIr.r
r
r�
ftype_pipe�srOcCsDt|||d�}|sdS|dr*d|dp,d}d|d|d|fS)	Nz
unixsk.imgzunix[?]rz %s�zunix[%d (%d)%s]�inoZpeerrM)r	rHrIZux�nr
r
r�
ftype_unix�s
rSZreg)�getr(rK�pipeZusk)�REG�PIPEZUNIXSKcCsd|d|fS)Nz%s.%d�typr
)r	rHrIr
r
r�	ftype_gen�srYcCsZ|d|df}t�|d�}|sVt�|dt|dd��}|d|||d�}|t|<|S)N�typerE)rTrXrT)�files_cacherT�
file_typesrY)r	�fd�keyr*rHr
r
r�get_file_str�sr_c	Cs�tj�t|d��}|dD]�}t|d�}tj�t|d|��}|ddd}tj�t|d|��}td|�|dD]}td	|d
t||�f�qxtj�t|d|��dd}tdd
t|d|dd��f�tddt|d|dd��f�qdS)Nr>r?r2z
ids-%s.imgrZfiles_idz
fdinfo-%d.img�%dz	%7d: %sr]z	fs-%d.imgz	%7s: %s�cwdrVZcwd_id�rZrE�rootZroot_id�rrr rr0r!r_)r	rAr.r2ZidiZfdtZfdir]r
r
r�explore_fds�s,
����rec@seZdZdd�Zdd�ZdS)�vma_idcCsi|_d|_dS�Nr)�_vma_id__ids�
_vma_id__last)r6r
r
rr7�szvma_id.__init__cCs4|j�|d�}|s0|j}|jd7_||j|<|Srg)rhrTri)r6Ziid�retr
r
rrT�s
z
vma_id.getN)r8r9r:r7rTr
r
r
rrf�srfc	Cstj�t|d��}t�}|dD�]�}t|d�}tj�t|d|��dd}td|�tddt|d	|d
d��f�|dD�]�}|d
}|d@r�dd|�|d�}n�|d@r�dd|�|d�}n�|d@r�dd|�|d�}n�|d@�r@dt|d	|dd��}|d�r,|d|d7}|d@�r�|d7}nH|d@�rPd}n8|d@�r`d}n(|d@�rpd }n|d!d@�r�d"}nd#}|d$@�s�|d%7}|d&d$@�r�d'�p�d(}	|	|d&d@�r�d)�p�d(7}	|	|d&d@�r�d*�p�d(7}	d+|d,|d-f}
td.|
|	|f�q�q dS)/Nr>r?r2�	mm-%d.imgrr`z	%-36s    %sZexerVZexe_file_idrb�vmas�statusir;zips[%lx]�shmid�z
shmem[%lx]izpacket[%lx]�Zpgoffz + %#lx�z (s)�z [stack]rz [vsyscall]�z [vdso]�flagsz	 [stack?]rPrz *�prot�r�-�w�xz%08lx-%08lx�start�endz
	%-36s%s%s)	rrr rrfr0r!r_rT)r	rAZvidsr.r2Zmmi�vma�st�fnruZastrr
r
r�explore_mems�sZ
��
�







rc
	Cs�tj�t|d��}|dD�]h}t|d�}tj�t|d|��ddd}tj�t|d|��d}td|�d}d	}|d
d�D]�}d|d|d
f}	||d|dkr�|d
7}q�|d|d
d>}
d}||d|
k�rj||}||k�r|d7}nR|d|d|d|dd?f7}|dd@�rP|dt|d|dd��7}|}|dd7}|d
7}q�|d
8}td|	|f�q�qdS)Nr>r?r2rkrrlzpagemap-%d.imgr`���rz	%lx / %-8dZvaddrZnr_pagesr{�rPrzz ~z
 %08lx / %-8drmrpr;rVrnrbz
	%23sz%-24s%srd)
r	rAr.r2rlZpmsZvmiZpvmiZpmZpstrZpmeZvstrr|r
r
r�explore_rss%sN
����


��
r��rBZfdsZmemsZrsscCst|d|�dS)N�what)�	explorersrr
r
r�exploreTsr�c	Cs�d}tj|tjd�}|jdd�}|jddd�}|jddd	d
�|jddd
d�|jdddd�|jtdd�|jddd�}|jdddd�|jdddd�|jtd�|jddd�}|�d�|jt	d�|jddd�}|�d�|jdgd�d �|jt
d�|jd!d"d�}|�d�|jd#d$d	d
�|jtd%dd&�t|���}|�spt
j�|���t
j�d'�t
�d(�|d)|�dS)*NzCRiu Image Tool)�description�formatter_classz-Use crit CMD --help for command-specific help)�helpr+z+convert criu image from binary type to jsonz--prettyzIMultiline with indents and some numerical fields in field-specific format�
store_true)r��actionz-iz--inz<criu image in binary format to be decoded (stdin by default)z-oz--outz:where to put criu image in json format (stdout by default)F)�funcrr,z+convert criu image from json type to binaryz:criu image in json format to be encoded (stdin by default)z<where to put criu image in binary format (stdout by default))r�r-zshow info about imagerryzexplore image dirrr�r�)�choicesZshowz5convert criu image from binary to human-readable jsonz--noplz%do not show entry payload (if exists)T)r�rr
zcrit: error: too few arguments
rr�)�argparse�ArgumentParser�RawTextHelpFormatter�add_subparsers�
add_parser�add_argument�set_defaultsr+r,r-r��vars�
parse_argsrr#r'�format_usager$)	Zdesc�parserZ
subparsersZ
decode_parserZ
encode_parserZinfo_parserZx_parserZshow_parserr	r
r
r�mainXs|���������

�
�
r��__main__)r)#Z
__future__rr�rr%rrrrrr+r,r-r0r1r<rDrFrJrLrNrOrSr\rYr[r_rerfrr�r�r�r�r8r
r
r
r�<module>sd		

����5(�E