OSDN Git Service

(split) Apply minor changes from v3.32 to v3.35 in the upstream.
[linuxjm/LDP_man-pages.git] / release / man2 / ptrace.2
1 .\" Hey Emacs! This file is -*- nroff -*- source.
2 .\"
3 .\" Copyright (c) 1993 Michael Haardt
4 .\" (michael@moria.de),
5 .\" Fri Apr  2 11:32:09 MET DST 1993
6 .\"
7 .\" changes Copyright 1999 Mike Coleman (mkc@acm.org)
8 .\" -- major revision to fully document ptrace semantics per recent Linux
9 .\"    kernel (2.2.10) and glibc (2.1.2)
10 .\" Sun Nov  7 03:18:35 CST 1999
11 .\"
12 .\" This is free documentation; you can redistribute it and/or
13 .\" modify it under the terms of the GNU General Public License as
14 .\" published by the Free Software Foundation; either version 2 of
15 .\" the License, or (at your option) any later version.
16 .\"
17 .\" The GNU General Public License's references to "object code"
18 .\" and "executables" are to be interpreted as the output of any
19 .\" document formatting or typesetting system, including
20 .\" intermediate and printed output.
21 .\"
22 .\" This manual is distributed in the hope that it will be useful,
23 .\" but WITHOUT ANY WARRANTY; without even the implied warranty of
24 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
25 .\" GNU General Public License for more details.
26 .\"
27 .\" You should have received a copy of the GNU General Public
28 .\" License along with this manual; if not, write to the Free
29 .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
30 .\" USA.
31 .\"
32 .\" Modified Fri Jul 23 23:47:18 1993 by Rik Faith <faith@cs.unc.edu>
33 .\" Modified Fri Jan 31 16:46:30 1997 by Eric S. Raymond <esr@thyrsus.com>
34 .\" Modified Thu Oct  7 17:28:49 1999 by Andries Brouwer <aeb@cwi.nl>
35 .\" Modified, 27 May 2004, Michael Kerrisk <mtk.manpages@gmail.com>
36 .\"     Added notes on capability requirements
37 .\"
38 .\" 2006-03-24, Chuck Ebbert <76306.1226@compuserve.com>
39 .\"    Added    PTRACE_SETOPTIONS, PTRACE_GETEVENTMSG, PTRACE_GETSIGINFO,
40 .\"        PTRACE_SETSIGINFO, PTRACE_SYSEMU, PTRACE_SYSEMU_SINGLESTEP
41 .\"    (Thanks to Blaisorblade, Daniel Jacobowitz and others who helped.)
42 .\"
43 .\" FIXME: Linux 3.1 adds PTRACE_SEIZE, PTRACE_INTERRUPT, and PTRACE_LISTEN.
44 .\"
45 .\" Japanese Version Copyright (c) 1997-1999 HANATAKA Shinya
46 .\"         all rights reserved.
47 .\" Translated 1999-11-20, HANATAKA Shinya <hanataka@abyss.rim.or.jp>
48 .\" Updated 2003-10-11, Kentaro Shirakata <argrath@ub32.org>
49 .\" Updated 2006-07-23, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v2.28
50 .\" Updated 2007-01-07, Akihiro MOTOKI, LDP v2.43
51 .\" Updated 2007-05-01, Akihiro MOTOKI, LDP v2.46
52 .\" Updated 2008-08-06, Akihiro MOTOKI, LDP v3.05
53 .\" Updated 2009-04-13, Akihiro MOTOKI, LDP v3.20
54 .\"
55 .\"WORD:        child process           »Ò¥×¥í¥»¥¹
56 .\"WORD:        parent process          ¿Æ¥×¥í¥»¥¹
57 .\"WORD:        core image              ¥á¥â¥ê¡¦¥¤¥á¡¼¥¸
58 .\"WORD:        break point             ¥Ö¥ì¡¼¥¯¡¦¥Ý¥¤¥ó¥È
59 .\"WORD:        single step             ¥·¥ó¥°¥ë¡¦¥¹¥Æ¥Ã¥×¼Â¹Ô
60 .\"WORD:        trap flag               ¥È¥é¥Ã¥×¡¦¥Õ¥é¥°
61 .\"WORD:        attach                  Àܳ
62 .\"WORD:        detach                  ʬΥ
63 .\"WORD:        process ID              ¥×¥í¥»¥¹ID
64 .\"
65 .TH PTRACE 2 2009-03-30 "Linux" "Linux Programmer's Manual"
66 .SH Ì¾Á°
67 ptrace \- ¥×¥í¥»¥¹¤Î¥È¥ì¡¼¥¹
68 .SH ½ñ¼°
69 .nf
70 .B #include <sys/ptrace.h>
71 .sp
72 .BI "long ptrace(enum __ptrace_request " request ", pid_t " pid ", "
73 .BI "            void *" addr ", void *" data );
74 .fi
75 .SH ÀâÌÀ
76 .BR ptrace ()
77 ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¿Æ¥×¥í¥»¥¹¤¬¡¢ÊÌ¤Î¥×¥í¥»¥¹¤Î¼Â¹Ô¤Î´Æ»ë/À©¸æ¤ò
78 ¹Ô¤Ã¤¿¤ê¡¢¥³¥¢¥¤¥á¡¼¥¸ (core image) ¤ä¥ì¥¸¥¹¥¿¤ÎÄ´ºº/Êѹ¹¤ò
79 ¹Ô¤Ã¤¿¤ê¤¹¤ë¼êÃʤòÄ󶡤¹¤ë¡£
80 .BR ptrace ()
81 ¤Ï¡¢¼ç¤Ë¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤Ë¤è¤ë¥Ç¥Ð¥Ã¥°¤ä¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥È¥ì¡¼¥¹¤ò
82 ¼ÂÁõ¤¹¤ë¤Î¤ËÍѤ¤¤é¤ì¤ë¡£
83 .LP
84 ¥È¥ì¡¼¥¹¤ò³«»Ï¤¹¤ë¤Ë¤Ï¡¢¤Þ¤º¿Æ¥×¥í¥»¥¹¤Ç
85 .BR fork (2)
86 ¤ò¸Æ¤Ó½Ð¤¹¡£À¸À®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ç
87 .B PTRACE_TRACEME
88 ¤ò¹Ô¤¤¡¢Â³¤¤¤Æ (ŵ·¿Åª¤Ë¤Ï)
89 .BR exec (3)
90 ¤ò¹Ô¤Ê¤¦¡£
91 Ê̤ÎÊýË¡¤È¤·¤Æ¤Ï¡¢
92 ¿Æ¥×¥í¥»¥¹¤¬´û¸¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ
93 .B PTRACE_ATTACH
94 ¤ò»ÈÍѤ·¡¢¥È¥ì¡¼¥¹¤ò³«»Ï¤¹¤ë¡£
95 .LP
96 ¥È¥ì¡¼¥¹¤Î¼Â¹ÔÃæ¡¢»Ò¥×¥í¥»¥¹¤Ï¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤ë¤¿¤Ó¤Ë¡¢
97 ¤¿¤È¤¨¤½¤Î¥·¥°¥Ê¥ë¤¬Ìµ»ë¤¹¤Ù¤­¤â¤Î¤Ç¤¢¤Ã¤Æ¤âÄä»ß¤¹¤ë
98 .RB ( SIGKILL
99 ¤ÏÎã³°¤Ç¡¢Ä̾ï¤É¤ª¤ê¤Î¸ú²Ì¤ò¤â¤¿¤é¤¹)¡£
100 ¿Æ¥×¥í¥»¥¹¤Ë¤Ï¼¡¤Î
101 .BR wait (2)
102 ¤ÇÄÌÃΤµ¤ì¡¢Ää»ß¤·¤Æ¤¤¤ë´Ö¤Ë»Ò¥×¥í¥»¥¹¤òÄ´¤Ù¤¿¤ê½¤Àµ¤·¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
103 ¤½¤·¤Æ¿Æ¥×¥í¥»¥¹¤Ï»Ò¥×¥í¥»¥¹¤Î¼Â¹Ô¤òºÆ³«¤µ¤»¤ë¤¬¡¢ÇÛÁ÷¤µ¤ì¤¿
104 ¥·¥°¥Ê¥ë¤ò̵»ë¤¹¤ë¤³¤È¤â¤Ç¤­¤ë (¤¢¤ë¤¤¤ÏÂå¤ï¤ê¤ËÊ̤Υ·¥°¥Ê¥ë¤ò
105 ÇÛÁ÷¤¹¤ë¤³¤È¤â¤Ç¤­¤ë) ¡£
106 .LP
107 ¿Æ¥×¥í¥»¥¹¤¬¥È¥ì¡¼¥¹¤ò½ªÎ»¤¹¤ëºÝ¤Ë¤Ï¡¢
108 .B PTRACE_KILL
109 ¤ò»ÈÍѤ·¤Æ»Ò¥×¥í¥»¥¹¤ò½ªÎ»¤µ¤»¤ë¤³¤È¤â¤Ç¤­¤ë¤·¡¢
110 .B PTRACE_DETACH
111 ¤òÍѤ¤¤ÆÄ̾ï¤Î¥È¥ì¡¼¥¹¤Ê¤·¤Î¥â¡¼¥É¤Ë¤·¤Æ¡¢
112 ¼Â¹Ô¤ò·Ñ³¤µ¤»¤ë¤³¤È¤â¤Ç¤­¤ë¡£
113 .LP
114 \fIrequest\fP ¤ÎÃͤ¬¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÆ°ºî¤ò·èÄꤹ¤ë:
115 .TP
116 .B PTRACE_TRACEME
117 ¤³¤Î¥×¥í¥»¥¹¤¬¿Æ¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ¥È¥ì¡¼¥¹¤µ¤ì¤ë¤³¤È¤òɽ¤¹¡£
118 ¤³¤Î¥×¥í¥»¥¹¤Ë
119 .RB ( SIGKILL
120 °Ê³°¤Î) ¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤ë¤È¡¢
121 ¥×¥í¥»¥¹¤ÏÄä»ß¤·¡¢¿Æ¥×¥í¥»¥¹¤Ë
122 .BR wait (2)
123 ¤òÄ̤¸¤ÆÄÌÃΤµ¤ì¤ë¡£
124 ¤Þ¤¿¡¢¤³¤ì°Ê¹ß¤Ï¤³¤Î¥×¥í¥»¥¹¤¬
125 .BR execve (2)
126 ¤ò¸Æ¤Ó½Ð¤¹ÅÙ¤Ë
127 .B SIGTRAP
128 ¤¬Á÷¿®¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£
129 ¤³¤ì¤Ë¤è¤Ã¤Æ¡¢¿Æ¥×¥í¥»¥¹¤Ï
130 ¿·¤·¤¤¥×¥í¥°¥é¥à¤¬¼Â¹Ô¤ò³«»Ï¤¹¤ëÁ°¤ËÀ©¸æ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
131 ¿Æ¥×¥í¥»¥¹¤¬¼«¥×¥í¥»¥¹¤ò¥È¥ì¡¼¥¹¤¹¤ë¤Ä¤â¤ê¤¬¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢
132 ¤ª¤½¤é¤¯¤³¤Î¥×¥í¥»¥¹¤ÏËÜÍ×µá¤ò¹Ô¤¦¤Ù¤­¤Ç¤Ï¤Ê¤¤¤À¤í¤¦¡£
133 (\fIpid\fP, \fIaddr\fP, \fIdata\fP ¤Ï̵»ë¤µ¤ì¤ë¡£)
134 .LP
135 ¾åµ­¤ÎÍ×µá¤Ï»Ò¥×¥í¥»¥¹¤À¤±¤¬¹Ô¤Ê¤¦¤â¤Î¤Ç¤¢¤ë¡£
136 »Ä¤ê¤Ï¿Æ¥×¥í¥»¥¹¤À¤±¤¬¹Ô¤Ê¤¦¤â¤Î¤Ç¤¢¤ë¡£
137 °Ê²¼¤ÎÍ×µá¤Ç¤Ï¡¢\fIpid\fP ¤ÇÁàºî¤ÎÂоݤȤʤë
138 »Ò¥×¥í¥»¥¹¤ò»ØÄꤹ¤ë¡£
139 .B PTRACE_KILL
140 ¤ò½ü¤­¡¢Í×µá¤ò¹Ô¤Ê¤¦¤¿¤á¤Ë¤Ï
141 »Ò¥×¥í¥»¥¹¤ÏÄä»ß¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
142 .TP
143 .BR PTRACE_PEEKTEXT ", " PTRACE_PEEKDATA
144 »Ò¥×¥í¥»¥¹¤Î¥á¥â¥ê¤Î
145 .I addr
146 ¤Î°ÌÃÖ¤«¤é 1 ¥ï¡¼¥É¤òÆɤ߽Ф¹¡£Æɤ߽Ф·¤¿¥ï¡¼¥É¤Ï
147 .BR ptrace ()
148 ¤ÎÊÖ¤êÃͤȤ·¤ÆÊÖ¤µ¤ì¤ë¡£ Linux ¤Ç¤Ï¥Æ¥­¥¹¥È (text) ¤È¥Ç¡¼¥¿ (data) ¤Ç
149 Ʊ¤¸¥¢¥É¥ì¥¹¶õ´Ö¤ò»ÈÍѤ¹¤ë¤¿¤á¡¢¤³¤Î 2 ¤Ä¤ÎÍ×µá¤Ï¸½ºß¤Î¤È¤³¤í
150 Ʊ¤¸¤â¤Î¤Ç¤¢¤ë¡£ (°ú¤­¿ô \fIdata\fP ¤Ï̵»ë¤µ¤ì¤ë¡£)
151 .TP
152 .B PTRACE_PEEKUSER
153 .\" PTRACE_PEEKUSR in kernel source, but glibc uses PTRACE_PEEKUSER,
154 .\" and that is the name that seems common on other systems.
155 »Ò¥×¥í¥»¥¹¤Î USER Îΰè¤Î¥ª¥Õ¥»¥Ã¥È
156 .I addr
157 ¤Î°ÌÃÖ¤«¤é 1 ¥ï¡¼¥É¤òÆɤ߹þ¤à¡£USER Îΰè¤Ë¤Ï¤½¤Î¥×¥í¥»¥¹¤Î
158 ¥ì¥¸¥¹¥¿ (registers) ¤Ê¤É¤Î¾ðÊó¤¬ÊÝ»ý¤µ¤ì¤Æ¤¤¤ë
159 (\fI<sys/user.h>\fP ¤ò»²¾È)¡£Æɤ߹þ¤ó¤À¥ï¡¼¥É¤Ï
160 .BR ptrace ()
161 ¥³¡¼¥ë¤Î·ë²Ì¤È¤·¤ÆÊÖ¤µ¤ì¤ë¡£
162 ¤¿¤¤¤Æ¤¤¤Ï¥ª¥Õ¥»¥Ã¥È¤Ï¥ï¡¼¥É¶­³¦¤Ë¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤¬¡¢
163 ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤è¤Ã¤Æ¤Ï¤½¤ÎɬÍפϤʤ¤¡£
164 ¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¡£
165 (\fIdata\fP ¤Ï̵»ë¤µ¤ì¤ë¡£ )
166 .TP
167 .BR PTRACE_POKETEXT ", " PTRACE_POKEDATA
168 ¥ï¡¼¥É
169 .I data
170 ¤ò»Ò¥×¥í¥»¥¹¤Î¥á¥â¥ê¤Î
171 .I addr
172 ¤Î°ÌÃ֤إ³¥Ô¡¼¤¹¤ë¡£¾å¤ÈƱÍͤˡ¢¸½ºß¤Î¤È¤³¤íÆó¤Ä¤Î
173 Í×µá¤ÏƱ¤¸¤â¤Î¤Ç¤¢¤ë¡£
174 .TP
175 .B PTRACE_POKEUSER
176 .\" PTRACE_POKEUSR in kernel source, but glibc uses PTRACE_POKEUSER,
177 .\" and that is the name that seems common on other systems.
178 ¥ï¡¼¥É
179 .I data
180 ¤ò»Ò¥×¥í¥»¥¹¤Î USER Îΰè¤Î¥ª¥Õ¥»¥Ã¥È
181 .I addr
182 ¤Î°ÌÃ֤˥³¥Ô¡¼¤¹¤ë¡£
183 ¾å¤ÈƱÍͤˡ¢Ä̾¥ª¥Õ¥»¥Ã¥È¤Ï¥ï¡¼¥É¶­³¦¤Ë¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
184 ¥«¡¼¥Í¥ë¤Î´°Á´À­ (integrity) ¤ò°Ý»ý¤¹¤ë¤¿¤á¡¢
185 Êѹ¹ÆâÍƤˤè¤Ã¤Æ¤Ï USER Îΰè¤ÎÊѹ¹¤Ï¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¡£
186 .TP
187 .BR PTRACE_GETREGS ", " PTRACE_GETFPREGS
188 ¤½¤ì¤¾¤ì¡¢»Ò¥×¥í¥»¥¹¤ÎÈÆÍѥ쥸¥¹¥¿¡¢ÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤ò¿Æ¥×¥í¥»¥¹¤Î
189 \fIdata\fP ¤Î°ÌÃ֤˥³¥Ô¡¼¤¹¤ë¡£¤³¤Î data ¤Î½ñ¼°¤Ë´Ø¤·¤Æ¤Ï
190 \fI<sys/user.h>\fP ¤ò»²¾È¤¹¤ë¤³¤È¡£(\fIaddr\fP ¤Ï̵»ë¤µ¤ì¤ë¡£)
191 .TP
192 .BR PTRACE_GETSIGINFO " (Linux 2.3.99-pre6 °Ê¹ß)"
193 Ää»ß¤Î¸¶°ø¤È¤Ê¤Ã¤¿¥·¥°¥Ê¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤ò¼èÆÀ¤¹¤ë¡£
194 \fIsiginfo_t\fP ¹½Â¤ÂÎ
195 .RB ( sigaction (2)
196 »²¾È) ¤ò»Ò¥×¥í¥»¥¹¤«¤é¿Æ¥×¥í¥»¥¹¤Î \fIdata\fP ¤Î°ÌÃ֤˥³¥Ô¡¼¤¹¤ë¡£
197 (\fIaddr\fP ¤Ï̵»ë¤µ¤ì¤ë¡£)
198 .TP
199 .BR PTRACE_SETREGS ", " PTRACE_SETFPREGS
200 ¤½¤ì¤¾¤ì¡¢»Ò¥×¥í¥»¥¹¤ÎÈÆÍѥ쥸¥¹¥¿¡¢ÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤Ë
201 ¿Æ¥×¥í¥»¥¹¤Î \fIdate\fP ¤Î°ÌÃÖ¤«¤é¥³¥Ô¡¼¤¹¤ë¡£
202 .B PTRACE_POKEUSER
203 ¤ÈƱÍͤˡ¢ÈÆÍѥ쥸¥¹¥¿¤Ë¤è¤Ã¤Æ¤Ï
204 Êѹ¹¤¬¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤¬¤¢¤ë¡£ (\fIaddr\fP ¤Ï̵»ë¤µ¤ì¤ë¡£)
205 .TP
206 .BR PTRACE_SETSIGINFO " (Linux 2.3.99-pre6 °Ê¹ß)"
207 ¥·¥°¥Ê¥ë¾ðÊó¤òÀßÄꤹ¤ë¡£
208 \fIsiginfo_t\fP ¹½Â¤ÂΤò¿Æ¥×¥í¥»¥¹¤Î¥Ç¡¼¥¿ \fIdata\fP ¤Î°ÌÃÖ¤«¤é
209 »Ò¥×¥í¥»¥¹¤Ë¥³¥Ô¡¼¤¹¤ë¡£
210 ¤³¤Î½èÍý¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¤Î¤Ï¡¢»Ò¥×¥í¥»¥¹¤ËÄ̾ï¤ÏÇÛÁ÷¤µ¤ì¤ë¤Ï¤º¤Ç
211 ¥È¥ì¡¼¥µ¤ËÊ᪤µ¤ì¤¿¥·¥°¥Ê¥ë¤Ë¤Ä¤¤¤Æ¤À¤±¤Ç¤¢¤ë¡£
212 ¤³¤ì¤é¤ÎÄ̾ï¤Î¥·¥°¥Ê¥ë¤È
213 .BR ptrace ()
214 ¼«¿È¤¬È¯À¸¤¹¤ë¥·¥°¥Ê¥ë¤ò¸«Ê¬¤±¤ë¤Î¤ÏÆñ¤·¤¤¤«¤â¤·¤ì¤Ê¤¤¡£
215 (\fIaddr\fP ¤Ï̵»ë¤µ¤ì¤ë¡£)
216 .TP
217 .BR PTRACE_SETOPTIONS " (Linux 2.4.6 °Ê¹ß; ¥Ð¥°¤Î¾Ï¤Ë¤¢¤ë·Ù¹ð¤â»²¾È)"
218 ¿Æ¥×¥í¥»¥¹¤Î \fIdata\fP ¤Ë´ð¤Å¤¤¤Æ ptrace ¤Î¥ª¥×¥·¥ç¥ó¤òÀßÄꤹ¤ë
219 (\fIaddr\fP ¤Ï̵»ë¤µ¤ì¤ë)¡£
220 \fIdata\fP ¤Ï¥ª¥×¥·¥ç¥ó¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¤È¤·¤Æ²ò¼á¤µ¤ì¡¢
221 ¥ª¥×¥·¥ç¥ó¤Ë¤Ï°Ê²¼¤Î¥Õ¥é¥°¤ò»ØÄê¤Ç¤­¤ë:
222 .RS
223 .TP
224 .BR PTRACE_O_TRACESYSGOOD " (Linux 2.4.6 °Ê¹ß)"
225 ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥È¥é¥Ã¥×¤¬ÇÛÁ÷¤µ¤ì¤¿¤È¤­¤Ë¡¢¥·¥°¥Ê¥ëÈÖ¹æ¤Î¥Ó¥Ã¥È 7
226 ¤òÀßÄꤹ¤ë (¤¹¤Ê¤ï¤Á¡¢\fISIGTRAP | 0x80\fP ¤òÇÛÁ÷¤¹¤ë)¡£
227 ¤³¤ì¤Ë¤è¤ê¡¢¥È¥ì¡¼¥µ¤¬Ä̾ï¤Î¥È¥é¥Ã¥×¤È¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤è¤ë¥È¥é¥Ã¥×¤ò
228 ¶èÊ̤·¤ä¤¹¤¯¤Ê¤ë¡£
229 .RB ( PTRACE_O_TRACESYSGOOD
230 ¤Ï¤É¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤âÆ°ºî¤·¤Ê¤¤²ÄǽÀ­¤¬¤¢¤ë¡£)
231 .TP
232 .BR PTRACE_O_TRACEFORK " (Linux 2.5.46 °Ê¹ß)"
233 ¼¡¤Î
234 .BR fork (2)
235 ¸Æ¤Ó½Ð¤·»þ¤Ë \fISIGTRAP | PTRACE_EVENT_FORK\ <<\ 8\fP ¤Ç
236 »Ò¥×¥í¥»¥¹¤ÎÆ°ºî¤òÄä»ß¤µ¤»¡¢
237 ¿·¤¿¤Ë fork ¤µ¤ì¤¿¥×¥í¥»¥¹¤Î¥È¥ì¡¼¥¹¤ò¼«Æ°Åª¤Ë³«»Ï¤·¡¢
238 .B SIGSTOP
239 ¤Ç¤½¤Î¥×¥í¥»¥¹¤Î¼Â¹Ô¤ò³«»Ï¤¹¤ë¡£
240 ¿·¤·¤¤¥×¥í¥»¥¹¤Î PID ¤Ï
241 .B PTRACE_GETEVENTMSG
242 ¤Ç¼èÆÀ¤Ç¤­¤ë¡£
243 .TP
244 .BR PTRACE_O_TRACEVFORK " (Linux 2.5.46 °Ê¹ß)"
245 ¼¡¤Î
246 .BR vfork (2)
247 ¸Æ¤Ó½Ð¤·»þ¤Ë \fISIGTRAP | PTRACE_EVENT_VFORK\ <<\ 8\fP ¤Ç
248 »Ò¥×¥í¥»¥¹¤ÎÆ°ºî¤òÄä»ß¤µ¤»¡¢
249 ¿·¤¿¤Ë vfork ¤µ¤ì¤¿¥×¥í¥»¥¹¤Î¥È¥ì¡¼¥¹¤ò¼«Æ°Åª¤Ë³«»Ï¤·¡¢
250 .B SIGSTOP
251 ¤Ç¤½¤Î¥×¥í¥»¥¹¤Î¼Â¹Ô¤ò³«»Ï¤¹¤ë¡£
252 ¿·¤·¤¤¥×¥í¥»¥¹¤Î PID ¤Ï
253 .B PTRACE_GETEVENTMSG
254 ¤Ç¼èÆÀ¤Ç¤­¤ë¡£
255 .TP
256 .BR PTRACE_O_TRACECLONE " (Linux 2.5.46 °Ê¹ß)"
257 ¼¡¤Î
258 .BR clone (2)
259 ¸Æ¤Ó½Ð¤·»þ¤Ë \fISIGTRAP | PTRACE_EVENT_CLONE\ << \8\fP ¤Ç
260 »Ò¥×¥í¥»¥¹¤ÎÆ°ºî¤òÄä»ß¤µ¤»¡¢
261 ¿·¤¿¤Ë clone ¤ÇºîÀ®¤µ¤ì¤¿¥×¥í¥»¥¹¤Î¥È¥ì¡¼¥¹¤ò¼«Æ°Åª¤Ë³«»Ï¤·¡¢
262 .B SIGSTOP
263 ¤Ç¥×¥í¥»¥¹¤Î¼Â¹Ô¤ò³«»Ï¤¹¤ë¡£
264 ¿·¤·¤¤¥×¥í¥»¥¹¤Î PID ¤Ï
265 .B PTRACE_GETEVENTMSG
266 ¤Ç¼èÆÀ¤Ç¤­¤ë¡£
267 ¤³¤Î¥ª¥×¥·¥ç¥ó¤ÇÁ´¤Æ¤Î
268 .BR clone (2)
269 ¥³¡¼¥ë¤òÊá¤Þ¤¨¤é¤ì¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£
270 »Ò¥×¥í¥»¥¹¤¬
271 .B CLONE_VFORK
272 ¥Õ¥é¥°ÉÕ¤­¤Ç
273 .BR clone (2)
274 ¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¡¢
275 .B PTRACE_O_TRACEVFORK
276 ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ì¤ÐÂå¤ï¤ê¤Ë
277 .B PTRACE_EVENT_VFORK
278 ¤¬ÇÛÁ÷¤µ¤ì¤ë¡£
279 ¤Þ¤¿¡¢»Ò¥×¥í¥»¥¹¤¬½ªÎ»¥·¥°¥Ê¥ë¤ò
280 .B SIGCHLD
281 ¤ËÀßÄꤷ¤Æ
282 .BR clone (2)
283 ¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¤Ï¡¢
284 .B PTRACE_O_TRACEFORK
285 ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ì¤Ð
286 .B PTRACE_EVENT_FORK
287 ¤¬ÇÛÁ÷¤µ¤ì¤ë¡£
288 .TP
289 .BR PTRACE_O_TRACEEXEC " (Linux 2.5.46 °Ê¹ß)"
290 ¼¡¤Î
291 .BR execve (2)
292 ¸Æ¤Ó½Ð¤·»þ¤Ë
293 \fISIGTRAP | PTRACE_EVENT_EXEC\ <<\ 8\fP
294 ¤Ç»Ò¥×¥í¥»¥¹¤ÎÆ°ºî¤òÄä»ß¤µ¤»¤ë¡£
295 .TP
296 .BR PTRACE_O_TRACEVFORKDONE " (Linux 2.5.60 °Ê¹ß)"
297 ¼¡¤Î
298 .BR vfork (2)
299 ¸Æ¤Ó½Ð¤·»þ¤Ë
300 \fISIGTRAP | PTRACE_EVENT_VFORK_DONE\ <<\ 8\fP
301 ¤Ç»Ò¥×¥í¥»¥¹¤ÎÆ°ºî¤òÄä»ß¤µ¤»¤ë¡£
302 .TP
303 .BR PTRACE_O_TRACEEXIT " (Linux 2.5.60 °Ê¹ß)"
304 ½ªÎ» (exit) »þ¤Ë \fISIGTRAP | PTRACE_EVENT_EXIT\ <<\ 8\fP
305 ¤Ç»Ò¥×¥í¥»¥¹¤ÎÆ°ºî¤òÄä»ß¤µ¤»¤ë¡£»Ò¥×¥í¥»¥¹¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ï
306 .B PTRACE_GETEVENTMSG
307 ¤Ç¼èÆÀ¤Ç¤­¤ë¡£
308 ¤³¤ÎÄä»ß¤Ï¥ì¥¸¥¹¥¿¤¬¤Þ¤À»²¾È²Äǽ¤Ç¤¢¤ë¥×¥í¥»¥¹½ªÎ»½èÍý¤Î½é´ü¤Ë¹Ô¤ï¤ì¡¢
309 ¥È¥ì¡¼¥µ¤Ï¤É¤³¤Ç½ªÎ»¤¬È¯À¸¤·¤¿¤«¤òÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£
310 Ä̾ï¤Î½ªÎ»ÄÌÃΠ(exit notification) ¤Ï¥×¥í¥»¥¹¤Î½ªÎ»½èÍý¤¬´°Î»¤·¤¿¸å¤Ë
311 ¹Ô¤ï¤ì¤ë¡£¥³¥ó¥Æ¥­¥¹¥È¤ò»²¾È¤¹¤ë¤³¤È¤Ï¤Ç¤­¤ë¤Ë¤â´Ø¤ï¤é¤º¡¢
312 ¥È¥ì¡¼¥µ¤Ï¤³¤Î»þÅÀ¤«¤é½ªÎ»¤ò»ß¤á¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£
313 .RE
314 .TP
315 .BR PTRACE_GETEVENTMSG " (Linux 2.5.46 °Ê¹ß)"
316 ȯÀ¸¤·¤¿¤Ð¤«¤ê¤Î ptrace ¥¤¥Ù¥ó¥È¤Ë´Ø¤¹¤ë¥á¥Ã¥»¡¼¥¸¤ò
317 .RI ( "unsigned long"
318 ·¿¤Ç) ¼èÆÀ¤¹¤ë¡£
319 ¼èÆÀ¤·¤¿¥á¥Ã¥»¡¼¥¸¤Ï¿Æ¥×¥í¥»¥¹¤Î \fIdata\fP ¤Î°ÌÃ֤˳ÊǼ¤µ¤ì¤ë¡£
320 ÆÀ¤é¤ì¤ëÆâÍƤϡ¢
321 .B PTRACE_EVENT_EXIT
322 ¤Î¾ì¹ç¤Ï»Ò¥×¥í¥»¥¹¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ç¤¢¤ê¡¢
323 .BR PTRACE_EVENT_FORK ,
324 .BR PTRACE_EVENT_VFORK ,
325 .B PTRACE_EVENT_CLONE
326 ¤Î¾ì¹ç¤Ï¿·¤·¤¤¥×¥í¥»¥¹¤Î PID ¤Ç¤¢¤ë¡£
327 Linux 2.6.18 °Ê¹ß¤Ç¤Ï¡¢¿·¤·¤¤¥×¥í¥»¥¹¤Î PID ¤Ï
328 .B PTRACE_EVENT_VFORK_DONE
329 ¤ÇÆþ¼ê¤Ç¤­¤ë¡£
330 (\fIaddr\fP ¤Ï̵»ë¤µ¤ì¤ë¡£)
331 .TP
332 .B PTRACE_CONT
333 Ää»ß¤·¤¿»Ò¥×¥í¥»¥¹¤Î¼Â¹Ô¤òºÆ³«¤µ¤»¤ë¡£
334 \fIdata\fP ¤¬¥¼¥í¤Ç¤Ê¤¯¡¢
335 .B SIGSTOP
336 ¤Ç¤â¤Ê¤±¤ì¤Ð¡¢
337 »Ò¥×¥í¥»¥¹¤ËÇÛÁ÷¤µ¤ì¤ë¥·¥°¥Ê¥ë¤È²ò¼á¤µ¤ì¤ë¡£
338 ¥¼¥í¤ä
339 .B SIGSTOP
340 ¤Î¾ì¹ç¤Ï¥·¥°¥Ê¥ë¤ÏÇÛÁ÷¤µ¤ì¤Ê¤¤¡£
341 ¤³¤ì¤ò»È¤¦¤È¡¢Î㤨¤Ð¡¢¿Æ¥×¥í¥»¥¹¤Ï
342 »Ò¥×¥í¥»¥¹¤ËÁ÷¤é¤ì¤¿¥·¥°¥Ê¥ë¤ò¼ÂºÝ¤ËÇÛÁ÷¤¹¤ë¤«¤É¤¦¤«¤ò
343 À©¸æ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£(\fIaddr\fP ¤Ï̵»ë¤µ¤ì¤ë¡£)
344 .TP
345 .BR PTRACE_SYSCALL ", " PTRACE_SINGLESTEP
346 .B PTRACE_CONT
347 ¤ÈƱÍͤËÄä»ß¤·¤¿»Ò¥×¥í¥»¥¹¤òºÆ³«¤¹¤ë¡£¤¿¤À¤·¡¢
348 .B PTRACE_SYSCALL
349 ¤Î¾ì¹ç¤Ï»Ò¥×¥í¥»¥¹¤¬
350 ¼¡¤Ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÆþ¤ë¤«¥·¥¹¥Æ¥à¥³¡¼¥ë¤«¤éÈ´¤±¤ë¤«¤¹¤ë»þ¤Ë¡¢
351 .B PTRACE_SINGLESTEP
352 ¤Î¾ì¹ç¤Ï 1 Ì¿Îá (instruction) ¼Â¹Ô¤·¤¿¸å¤ËÄä»ß¤µ¤»¤ë
353 (Ä̾ï¤É¤ª¤ê¡¢»Ò¥×¥í¥»¥¹¤Ï¥·¥°¥Ê¥ë¤ò¼õ¤±¼è¤Ã¤¿¾ì¹ç¤Ë¤âÄä»ß¤¹¤ë)¡£
354 ¿Æ¥×¥í¥»¥¹¤«¤é¸«¤ë¤È¡¢»Ò¥×¥í¥»¥¹¤Ï
355 .B SIGTRAP
356 ¤ò¼õ¿®¤·¤ÆÄä»ß¤·¤¿¤è¤¦¤Ë¸«¤¨¤ë¡£¤½¤Î¤¿¤á¡¢Î㤨¤Ð
357 .B PTRACE_SYSCALL
358 ¤ò»È¤¦¤È¡¢1²óÌܤÎÄä»ß¤Ç°ú¤­¿ô¤òÄ´¤Ù¤Æ
359 .B PTRACE_SYSCALL
360 ¤ò¼Â¹Ô¤·¡¢ 2²óÌܤÎÄä»ß¤Ç¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÊÖ¤êÃͤòÄ´¤Ù¤ë¡¢
361 ¤È¤¤¤¦¤è¤¦¤Ê¤³¤È¤¬¤Ç¤­¤ë¡£
362 °ú¤­¿ô
363 .I data
364 ¤Ï
365 .B PTRACE_CONT
366 ¤Î¾ì¹ç¤ÈƱ¤¸Íͤ˲ò¼á¤µ¤ì¤ë¡£
367 (\fIaddr\fP ¤Ï̵»ë¤µ¤ì¤ë¡£)
368 .TP
369 .BR PTRACE_SYSEMU ", " PTRACE_SYSEMU_SINGLESTEP " (Linux 2.6.14 °Ê¹ß)"
370 .B PTRACE_SYSEMU
371 ¤Ï¡¢¼Â¹Ô¤òºÆ³«¤·¡¢¼¡¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÆþ¤ë»þ¤ËÄä»ß¤µ¤»¤ë¡£
372 ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¼Â¹Ô¤µ¤ì¤Ê¤¤¡£
373 .B PTRACE_SYSEMU_SINGLESTEP
374 ¤âƱÍͤÀ¤¬¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï
375 1 Ì¿Îá (singlestep) ¤À¤±¼Â¹Ô¤·¤¿»þÅÀ¤Ç¤âÄä»ß¤µ¤»¤ë¡£
376 ¤³¤Î¥³¡¼¥ë¤Ï User Mode Linux ¤Î¤è¤¦¤Ë»Ò¥×¥í¥»¥¹¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÁ´¤Æ
377 ¥¨¥ß¥å¥ì¡¼¥È¤·¤è¤¦¤È¤¹¤ë¥×¥í¥°¥é¥à¤Ç»ÈÍѤµ¤ì¤ë¡£
378 °ú¤­¿ô
379 .I data
380 ¤Ï
381 .B PTRACE_CONT
382 ¤Î¾ì¹ç¤ÈƱ¤¸Íͤ˲ò¼á¤µ¤ì¤ë¡£
383 (\fIaddr\fP ¤Ï̵»ë¤µ¤ì¤ë¡£
384 Á´¤Æ¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£)
385 .TP
386 .B PTRACE_KILL
387 »Ò¥×¥í¥»¥¹¤Ë
388 .B SIGKILL
389 ¤òÁ÷¤ê½ªÎ»¤µ¤»¤ë¡£(\fIaddr\fP ¤È \fIdata\fP ¤Ï̵»ë¤µ¤ì¤ë¡£)
390 .TP
391 .B PTRACE_ATTACH
392 .I pid
393 ¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤ËÀܳ (attach) ¤·¡¢¤½¤ì¤ò¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î
394 »Ò¥×¥í¥»¥¹¤È¤·¤Æ¥È¥ì¡¼¥¹¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£»Ò¥×¥í¥»¥¹¤Ï
395 .B PTRACE_TRACEME
396 ¤·¤¿¤«¤Î¤è¤¦¤Ë¿¶Éñ¤¦¡£¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Ï¤½¤Î¤Û¤È¤ó¤É¤ÎÌÜŪ¤Ë¤ª¤¤¤Æ¡¢
397 ¤½¤Î»Ò¥×¥í¥»¥¹¤Î¼ÂºÝ¤Î¿Æ¤Ë¤Ê¤ë (Î㤨¤Ð¡¢»Ò¥×¥í¥»¥¹¤Î¥¤¥Ù¥ó¥È¤Î
398 ÄÌÃΤò¼õ¤±¤È¤Ã¤¿¤ê¡¢
399 .BR ps (1)
400 ¤Ç¿Æ¤È¤·¤Æɽ¼¨¤µ¤ì¤¿¤ê¤¹¤ë)¡£¤·¤«¤·¡¢»Ò¥×¥í¥»¥¹¤Ç
401 .BR getppid (2)
402 ¤ò¼Â¹Ô¤·¤¿¾ì¹ç¤Ë¤Ï¸µ¤Î¿Æ¥×¥í¥»¥¹¤Î PID ¤¬ÊÖ¤µ¤ì¤ë¡£
403 »Ò¥×¥í¥»¥¹¤Ë¤Ï
404 .B SIGSTOP
405 ¤¬Á÷¤é¤ì¤ë¤¬¡¢¤³¤Î¸Æ¤Ó½Ð¤·¤¬´°Î»¤¹¤ë¤Þ¤Ç¤Ë
406 ɬ¤º¤·¤âÄä»ß¤¹¤ë¤È¤Ï¸Â¤é¤Ê¤¤¡£»Ò¥×¥í¥»¥¹¤ÎÄä»ß¤òÂԤĤˤÏ
407 .BR wait (2)
408 ¤ò»ÈÍѤ¹¤ë¤³¤È¡£(\fIaddr\fP ¤È \fIdata\fP ¤Ï̵»ë¤µ¤ì¤ë¡£)
409 .TP
410 .B PTRACE_DETACH
411 .B PTRACE_CONT
412 ¤ÈƱÍͤËÄä»ß¤·¤¿»Ò¥×¥í¥»¥¹¤òºÆ³«¤¹¤ë¡£¤¿¤À¤·
413 ¤Þ¤º¤½¤Î¥×¥í¥»¥¹¤«¤é¤ÎʬΥ (detach) ¤ò¹Ô¤¤¡¢
414 .B PTRACE_ATTACH
415 ¤Ç¤Î¿Æ¤ÎÀڤ괹¤¨¤Ë¤è¤ë¸ú²Ì¤È
416 .B PTRACE_TRACEME
417 ¤Î¸ú²Ì¤ò¼è¤ê¾Ã¤¹¡£°Õ¿Þ¤·¤¿¤â¤Î¤Ç¤Ï¤Ê¤¤¤À¤í¤¦¤¬¡¢
418 Linux ¤Ç¤Ï¡¢¥È¥ì¡¼¥¹¤µ¤ì¤Æ¤¤¤ë»Ò¥×¥í¥»¥¹¤Ï¤É¤Î¤è¤¦¤ÊÊýË¡¤Ç¥È¥ì¡¼¥¹¤ò
419 ³«»Ï¤µ¤ì¤¿¤È¤·¤Æ¤â¡¢¤³¤ÎÊýË¡¤ÇʬΥ (detach) ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
420 (\fIaddr\fP ¤Ï̵»ë¤µ¤ì¤ë¡£)
421 .SH ÊÖ¤êÃÍ
422 À®¸ù¤¹¤ë¤È¡¢
423 .B PTRACE_PEEK*
424 ¤Î¾ì¹ç¤ÏÍ׵ᤷ¤¿¥Ç¡¼¥¿¤òÊÖ¤·¡¢
425 ¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£
426 ¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢
427 .I errno
428 ¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£
429 .B PTRACE_PEEK*
430 ¤¬À®¸ù¤·¤ÆÊÖ¤¹Ãͤ⡡\-1 ¤Ë¤Ê¤ë¤³¤È¤¬¤¢¤ë¤¿¤á¡¢
431 ¤½¤Î¤è¤¦¤ÊÍ×µá¤Î¾ì¹ç¤Ë¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Ï
432 .I errno
433 ¤òÄ´¤Ù¡¢¥¨¥é¡¼¤«È¯À¸¤·¤¿¤Î¤«¤É¤¦¤«¤òȽÃǤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
434 .SH ¥¨¥é¡¼
435 .TP
436 .B EBUSY
437 (i386 ¤Î¤ß) ¥Ç¥Ð¥Ã¥°¥ì¥¸¥¹¥¿¤Î³ÎÊݤޤ¿¤Ï²òÊü¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£
438 .TP
439 .B EFAULT
440 ¿Æ¥×¥í¥»¥¹¤Þ¤¿¤Ï»Ò¥×¥í¥»¥¹¤Î¥á¥â¥ê¤ÎÉÔÀµ¤ÊÎΰè¤ËÆɤ߽ñ¤­¤·¤è¤¦¤È¤·¤¿¡£
441 ¤ª¤½¤é¤¯¤½¤ÎÎΰ褬¥Þ¥Ã¥Ô¥ó¥°¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢
442 ¤½¤ÎÎΰè¤Ø¤Î¥¢¥¯¥»¥¹¤¬µö¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¤Ç¤¢¤ë¡£
443 ÉÔ±¿¤Ê¤³¤È¤Ë¡¢Linux ¤Ç¤Ï¤³¤Î¤è¤¦¤Ê¥¨¥é¡¼¤Î¾ì¹ç¡¢Â¿¤«¤ì¾¯¤Ê¤«¤ì
444 ×ó°ÕŪ¤Ë
445 .B EIO
446 ¤òÊÖ¤·¤¿¤ê
447 .B EFAULT
448 ¤òÊÖ¤·¤¿¤ê¤¹¤ë¤³¤È¤¬¤¢¤ë¡£
449 .TP
450 .B EINVAL
451 ÉÔÀµ¤Ê¥ª¥×¥·¥ç¥ó¤òÀßÄꤷ¤è¤¦¤È¤·¤¿¡£
452 .TP
453 .B EIO
454 \fIrequest\fP ¤¬ÉÔÀµ¤Ç¤¢¤ë¡£
455 ¤Þ¤¿¤Ï¡¢¿Æ¥×¥í¥»¥¹¤Þ¤¿¤Ï»Ò¥×¥í¥»¥¹¤Î¥á¥â¥ê¤Î
456 ÉÔÀµ¤ÊÎΰè¤ËÆɤ߽ñ¤­¤·¤è¤¦¤È¤·¤¿¡£
457 ¤Þ¤¿¤Ï¡¢¥ï¡¼¥É¶­³¦°ãÈ¿¤¬¤¢¤Ã¤¿¡£
458 ¤Þ¤¿¤Ï¡¢¼Â¹ÔºÆ³«¤ÎÍ×µá¤ÇÉÔÀµ¤Ê¥·¥°¥Ê¥ë¤ò»ØÄꤷ¤¿¡£
459 .TP
460 .B EPERM
461 »ØÄꤷ¤¿¥×¥í¥»¥¹¤ò¥È¥ì¡¼¥¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£¤³¤ì¤Ï¿Æ¥×¥í¥»¥¹¤¬
462 ɬÍפʸ¢¸Â (ɬÍפʥ±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ï
463 .BR CAP_SYS_PTRACE )
464 ¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¤³¤È¤¬¸¶°ø¤Î¾ì¹ç¤¬¤¢¤ë¡£
465 ʬ¤«¤ê¤ä¤¹¤¤Íýͳ¤òµó¤²¤ë¤Ê¤é¡¢
466 ÈóÆø¢¥×¥í¥»¥¹¤Ï¥·¥°¥Ê¥ë¤òÁ÷¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¥×¥í¥»¥¹¤ò¥È¥ì¡¼¥¹¤Ç¤­¤Ê¤¤¤·¡¢
467 set-user-ID/set-group-ID ¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤Ï¥È¥ì¡¼¥¹¤Ç¤­¤Ê¤¤¡£
468 ¤Þ¤¿¤Ï¡¢¥×¥í¥»¥¹¤Ï¤¹¤Ç¤Ë¥È¥ì¡¼¥¹Ãæ¤Ç¤¢¤ë¡¢
469 ¤Þ¤¿¤Ï
470 .BR init (8)
471 ¥×¥í¥»¥¹ (PID ¤¬ 1) ¤Ç¤¢¤ë¡£
472 .TP
473 .B ESRCH
474 »ØÄꤷ¤¿¥×¥í¥»¥¹¤¬Â¸ºß¤·¤Ê¤¤¡£
475 ¤Þ¤¿¤Ï¡¢»ØÄꤷ¤¿¥×¥í¥»¥¹¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬
476 ¸½ºß¥È¥ì¡¼¥¹Ãæ¤Î»Ò¥×¥í¥»¥¹¤Ç¤Ï¤Ê¤¤¡£
477 ¤Þ¤¿¤Ï¡¢»ØÄꤷ¤¿¥×¥í¥»¥¹¤¬Ää»ß¤·¤Æ¤¤¤Ê¤¤ (Ää»ß¤·¤Æ¤¤¤ë¤³¤È¤¬É¬ÍפÊÍ×µá¤Î¾ì¹ç)¡£
478 .SH ½àµò
479 SVr4, 4.3BSD.
480 .SH Ãí°Õ
481 .BR ptrace ()
482 ¤Î°ú¤­¿ô¤Ï¾å¤Î¤è¤¦¤Ê¥×¥í¥È¥¿¥¤¥×¤Ë´ð¤Å¤¤¤Æ²ò¼á¤µ¤ì¤ë¤¬¡¢
483 glibc ¤Ç¤Ï¡¢¸½ºß¤Î¤È¤³¤í
484 .BR ptrace ()
485 ¤Ï \fIrequest\fP °ú¤­¿ô¤À¤±¤¬¸ÇÄê¤Î²ÄÊÑĹ°ú¤­¿ô´Ø¿ô¤È¤·¤Æ
486 Àë¸À¤µ¤ì¤Æ¤¤¤ë¡£
487 ¤³¤ì¤ÏɬÍפʤ±¤ì¤Ð»Ä¤ê¤Î°ú¤­¿ô¤Ï¾Êά²Äǽ¤Ç¤¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¤¬¡¢
488 ¤½¤ì¤Ï
489 .BR gcc (1)
490 ¤ÎÌÀʸ²½¤µ¤ì¤Æ¤¤¤Ê¤¤Æ°ºî¤òÍøÍѤ·¤Æ¤¤¤ë¤³¤È¤Ë¤Ê¤ë¡£
491 .LP
492 .BR init (8)
493 ¤¹¤Ê¤ï¤Á PID ¤¬ 1 ¤Î¥×¥í¥»¥¹¤Ï¥È¥ì¡¼¥¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£
494 .LP
495 ¥á¥â¥ê¤ä USER Îΰè¤ÎÆâÍƤäÇÛÃ֤ϠOS ¤´¤È¡¢¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤´¤È¤Ë
496 Èó¾ï¤Ë°Í¸¤¹¤ë¡£
497 ¥ª¥Õ¥»¥Ã¥È¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ÊÖ¤µ¤ì¤ë¥Ç¡¼¥¿¤Ï
498 .I "struct user"
499 ¤ÎÄêµÁ¤È´°Á´¤Ë°ìÃפ·¤Ê¤¤¤³¤È¤â¤¢¤ê¤¨¤ë¡£
500 .\" http://lkml.org/lkml/2008/5/8/375 »²¾È¡£
501 .LP
502 ¡Ö¥ï¡¼¥É (word) ¡×¤ÎÂ礭¤µ¤Ï OS ¤Ë¤è¤Ã¤Æ·è¤Þ¤ë¡£
503 (Î㤨¤Ð¡¢32 ¥Ó¥Ã¥È¤Î Linux ¤Ç¤Ï 32 ¥Ó¥Ã¥È¤Ç¤¢¤ë¡¢¤Ê¤É¡£)
504 .LP
505 ¥È¥ì¡¼¥¹¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¥È¥ì¡¼¥¹¤µ¤ì¤ë¥×¥í¥»¥¹¤ÎÆ°ºî¤Ëº³ºÙ¤Ê°ã¤¤¤¬
506 µ¯¤³¤ë¤³¤È¤¬¤¢¤ë¡£Î㤨¤Ð¡¢¥×¥í¥»¥¹¤¬
507 .B PTRACE_ATTACH
508 ¤Ë¤è¤Ã¤ÆÀܳ¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤¬Ää»ß¤·¤¿»þ¤Ç¤âËÜÍè¤Î¿Æ¤Ï
509 .BR wait (2)
510 ¤ò»È¤Ã¤ÆÄÌÃΤò¼õ¤±¤ë¤³¤È¤¬¤Ç¤­¤º¡¢¿·¤·¤¤¿Æ¤¬¸úΨ¤è¤¯
511 ¤³¤ÎÄÌÃΤò¿¿»÷¤ëÊýË¡¤â¤Ê¤¤¡£
512 .LP
513 ¿Æ¥×¥í¥»¥¹¤¬
514 .B PTRACE_EVENT_*
515 ¤¬¥»¥Ã¥È¤µ¤ì¤¿¥¤¥Ù¥ó¥È¤ò¼õ¿®¤·¤¿¾ì¹ç¡¢
516 »Ò¥×¥í¥»¥¹¤ÏÄ̾ïÄ̤ê¤Î¥·¥°¥Ê¥ëÇÛÁ÷¤¬¹Ô¤ï¤ì¤ë¾õÂ֤ˤʤ¤¡£
517 ¤Ä¤Þ¤ê¡¢¿Æ¥×¥í¥»¥¹¤¬¡¢
518 ¥·¥°¥Ê¥ë¤Ë¤è¤ê
519 .BR ptrace (PTRACE_CONT)
520 ¤ò¹Ô¤Ã¤¿¤ê¡¢
521 .BR ptrace (PTRACE_KILL)
522 ¤ò¹Ô¤Ã¤¿¤ê¤Ç¤­¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£
523 ¤³¤é¤é¤Î¥á¥Ã¥»¡¼¥¸¤Î¼õ¿®¸å¤Ï¡¢»Ò¥×¥í¥»¥¹¤ò½ªÎ» (kill) ¤¹¤ë¤Î¤Ë¡¢
524 ¥·¥°¥Ê¥ë
525 .B SIGKILL
526 ¤ò»ØÄꤷ¤Æ
527 .BR kill (2)
528 ¤ò¹Ô¤¦ÊýË¡¤òÂå¤ï¤ê¤Ë»ÈÍѤǤ­¤ë¡£
529 .LP
530 ¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤Ï¸½ºß¤Î Linux ¤Ë¤ª¤±¤ë
531 .BR ptrace ()
532 ¥³¡¼¥ë¤ÎÆ°ºî¤Ë¤Ä¤¤¤Æµ­½Ò¤·¤Æ¤¤¤ë¡£Â¾¤Î UNIX ¤Ç¤Ï
533 ¤½¤ÎÆ°ºî¤ÏÃø¤·¤¯°Û¤Ê¤ë¡£
534 ¤¤¤«¤Ê¤ë¾ì¹ç¤â
535 .BR ptrace ()
536 ¤ò»È¤¦¤È OS ¤ä¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ËÈó¾ï¤Ë°Í¸¤·¤¿¤â¤Î¤Ë¤Ê¤ë¡£
537 .LP
538 SunOS ¤Î¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤Ë¤Ï
539 .BR ptrace ()
540 ¤Ï¡ÖÆÈÆäÇÉԲIJò¡×¤Èµ­½Ò¤µ¤ì¤Æ¤ª¤ê¡¢¤Þ¤µ¤·¤¯¤½¤¦¤Ç¤¢¤ë¡£
541 Solaris 2 ¤Ç¤Ï proc ¥Ù¡¼¥¹¤Î
542 ¥Ç¥Ð¥Ã¥°¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤È¤·¤Æ
543 .BR ptrace ()
544 ¤Î¾å°Ì¸ß´¹´Ø¿ô¤¬¼ÂÁõ¤µ¤ì¡¢¤è¤ê¶¯ÎϤǰì´ÓÀ­¤Î¤¢¤ë¤â¤Î¤È¤Ê¤Ã¤Æ¤¤¤ë¡£
545 .SH ¥Ð¥°
546 ¥«¡¼¥Í¥ë 2.6 ¤Î¥Ø¥Ã¥À¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¥Û¥¹¥È¤Ç¤Ï¡¢
547 .B PTRACE_SETOPTIONS
548 ¤Ï¥«¡¼¥Í¥ë 2.4 ¤Î¥Ø¥Ã¥À¤È¤Ï°Û¤Ê¤ëÃͤÇÀë¸À¤µ¤ì¤ë¡£
549 ¤³¤Î¤¿¤á¡¢¥«¡¼¥Í¥ë 2.6 ¤Î¥Ø¥Ã¥À¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï
550 ¥«¡¼¥Í¥ë 2.4 ¤Ç¤ÏÀµ¤·¤¯Æ°ºî¤·¤Ê¤¤¡£
551 ¤³¤ÎÌäÂê¤Ï¡¢
552 .B PTRACE_SETOPTIONS
553 ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤¿ºÝ¤Ï¡¢
554 .B PTRACE_SETOPTIONS
555 ¤ò
556 .B PTRACE_OLDSETOPTIONS
557 ¤ËÄêµÁ¤·Ä¾¤¹¤³¤È¤ÇÂнè¤Ç¤­¤ë¡£
558 .SH ´ØÏ¢¹àÌÜ
559 .BR gdb (1),
560 .BR strace (1),
561 .BR execve (2),
562 .BR fork (2),
563 .BR signal (2),
564 .BR wait (2),
565 .BR exec (3),
566 .BR capabilities (7)