Server for Information Technologies ������ ��������������
������� �������������� ����������
(095) 932-9212, 932-9213, 939-0783
E-mail: [email protected]
������ �������� ����(!) ������������� ���������� CIT Forum CD-ROM

PTRACE(2)

��������
ptrace - ����������� ��������

���������

        int ptrace (request, pid, addr, data)
        int request, pid, addr, data;

��������
��������� ����� ptrace ������������� ��������, ��������� ������� ������������ ������� ����� ��������� ����������� ������������ ��������. � ������ ������� ���� ����� ������������ ��� ���������� ���������� � ������� ���������� [��. sdb(1)]. ����������� ������� �������� ������� �������, ���� �� �� �������� ������ [��. ������ � signal(2)], ����� ���� �� ������������������, � ��� ������������ ������� �������� ���������� �� ���� ����� wait(2). ���� ����������� ������� �������������, ������������ ������� ����� ������ � �������� ����� ��� ������, ������� ptrace. ����� ����, ������������ ������� ����� ���� ���������� ����������� �������, ���� ����������� ��� ����������, �������� ������ ������, ��������� ���������.

�������� request ���������� ��������, ������� ������ ��������� ��������� ����� ptrace. �������� ��������� ��������:
0 ����� � ���� ��������� request ������ ���� ������ ����������� ���������, ���� �������������� ��� ����������� ������������ ���������. ���� ����� ������������� � ������������ �������� ���� �����������, ���������� ���� ����������� ������� ��� ��������� ������� ���������������, �� ����������� �������, ��������� ���������� ���������� ������ signal [��. signal(2)]. ��������� pid, addr, � data ������������ � ������������ �������� �� ����������. ���� ������������ ������� �� ���������� ������������ ����������� �������, ���������� ����� ����������������.
������ � ���������� ���������� ��������� request ����� �������������� ������ ������������ ���������. ��� ���� ���� ������� �������� pid ���������� ������������� �� ���������� ��������. ������ ����� �����, ������ ����� ����������� ������� �������������.
1,2 ��� ���� ��������� request ������������� �������� ������������ ����� �� ������ addr � �������� ������������ ������������ ��������. ��� �������� request �������� � ���������� �����������. ������������ �������� data.
3 ������������� �������� ������������ ����� �� ��������� u ���� user, ����������� � ��������� �������� ������������ [��. <sys/user.h>] � ��������������� ������������ ��������. �������� addr ������ �������� ����� ������������ ������ ���������. �������� data ������������. ����� ����������� ��������, ���� ��������� ����� ��������� �� ����� ���� ���� ���������, � ���� ������ ������������� �������� ������������ -1, � ���������� ������������� �������� errno ������������� �������� EIO.
4,5 ��� ���� ��������� request �������� data ������������ �� ������ addr � �������� ������������ ������������ ��������. ��� �������� request �������� � ���������� �����������. ��� �������� ���������� ������������ ���������, ������ ����������� ��������; � ��������� ������ ������������� �������� ������������ -1, � ���������� ������������� �������� errno ������������� �������� EIO.
6 ��� �������� ��������� request ��������� �������� ��������� ���� � ��������� u ���� user, ��������������� ������������ ��������. �������� ��������� data ������������ � �����, �������� �������� �� ������ ��������� u �������� ���������� addr. ����� ���� �������� ���� ��������� ����������:
  1. �������� ������ ����������.
  2. �������� ���������� � ����� ��������� ����������.
���� u_ar0 ��������� u �������� ����� �������, � ������� ����������� ��������, ��� ������ ����������, ��� � �����������. ����� ��������� �������� ����� ������� �� ������ ���������, ����� � ����� /unix ����� ��� u, ������� ����� ��������� � ����� ������� ��� �� �������� ���� u_ar0. ������� ������������ ��������� � ���������� ������� ������ �� ���������� ����� <sys/reg.h>.
7 ����� � ���� ��������� request ������ ��� ������������� ������ ������������ ��������. ���� �������� data ����� 0, �� �� ������������� ������ ��������� ��� ����������, �� �� ������������ �������, ������� ���, ������� ������ ������������ ������������ ��������. ���� �������� data ����� ����������� ������ �������, �� ����������� ������� ������������ ������ ���, ��� ����� �� ������� ���� ������, � ��� ��������� ���������� ������� ���������. �������� addr ������ �����, � �������� �������������� ���������� ������������ ��������. ���� �������� addr ����� 1, ���������� ������������ �������� �������������� � ����� ������������. ��� �������� ���������� ������������ ���������, ������ �������� ��������� data. ����� ����������� ��������, ���� �������� data �� ����� 0 ��� ����������� ������ �������, � ���� ������ ������������� �������� ������������ -1, � ���������� ������������� �������� errno ������������� �������� EIO.
8 ����� � ���� ��������� request �������� � ����������� ������������ �������� � ��� �� ������������������� ��������, ��� � exit(2).
9 ����� � ���� ��������� request ������������� ��� ����������� � ����� ��������� ���������� ������������ �������� � ����� ��������� ��������, ��������� ��� �������� request, ������� 7. ������������� ��� ����������� �������� ���������� �� ���������� ������ �������� �������, ��� ��������� ���������� ������������ ����������� ������� �� ����� �������.

����� ������������ ��������� �����, ����� ptrace ��������� ����������� ����������������� ����������� ������������� ������������ ��� ����������� ������� exec(2). ���� ������������ ������� �������� exec, �� �� �� ���������� ������ ������� �� ������ ������������ ����� ���������������, ������� � ��������� ������� SIGTRAP.

��������� ����� ptrace ����������� ��������, ���� ��������� ���� �� ���� �� ��������� �������:

[EIO]
������������ �������� request.
[ESRCH]
����������� ����������� ������� � ���������������, ������ pid, ��� �� �� ������� ptrace � ���������� request, ������ 0.

��. �����
sdb(1), exec(2), exit(2), signal(2), wait(2).
Comments: [email protected]
Designed by Andrey Novikov
Copyright © CIT