]> git.pld-linux.org Git - packages/strace.git/blob - strace.1.pl
- tabs in preamble
[packages/strace.git] / strace.1.pl
1 .\" {PTM/PB/0.1/18-05-1999/"¶led¼ wywo³ania systemowe i sygna³y"}
2 .\" Translation 1999 Przemek Borys <pborys@dione.ids.pl>
3 .\" Copyright (c) 1991, 1992 Paul Kranenburg <pk@cs.few.eur.nl>
4 .\" Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
5 .\" Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
6 .\" All rights reserved.
7 .\"
8 .\" Redistribution and use in source and binary forms, with or without
9 .\" modification, are permitted provided that the following conditions
10 .\" are met:
11 .\" 1. Redistributions of source code must retain the above copyright
12 .\"    notice, this list of conditions and the following disclaimer.
13 .\" 2. Redistributions in binary form must reproduce the above copyright
14 .\"    notice, this list of conditions and the following disclaimer in the
15 .\"    documentation and/or other materials provided with the distribution.
16 .\" 3. The name of the author may not be used to endorse or promote products
17 .\"    derived from this software without specific prior written permission.
18 .\"
19 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20 .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21 .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22 .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23 .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
24 .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 .\"
30 .\"     $Id$
31 .\"
32 .de CW
33 .sp
34 .nf
35 .ft CW
36 ..
37 .de CE
38 .ft
39 .fi
40 .sp
41 ..
42 .TH STRACE 1 "96/02/13"
43 .SH NAZWA
44 strace \- ¶led¼ wywo³ania systemowe i sygna³y
45 .SH SK£ADNIA
46 .B strace
47 [
48 .B \-dffhiqrtttTvxx
49 ]
50 [
51 .BI \-a kolumna
52 ]
53 [
54 .BI \-e wyra¿
55 ]
56 \&...
57 [
58 .BI \-o plik
59 ]
60 [
61 .BI \-p pid
62 ]
63 \&...
64 [
65 .BI \-s rozmiarnapisu
66 ]
67 [
68 .BI \-u u¿ytkownik
69 ]
70 [
71 .I komenda
72 [
73 .I arg
74 \&...
75 ]
76 ]
77 .sp
78 .B strace
79 .B \-c
80 [
81 .BI \-e wyra¿
82 ]
83 \&...
84 [
85 .BI \-O wydatki
86 ]
87 [
88 .BI \-S sortuj
89 ]
90 [
91 .I komenda
92 [
93 .I arg
94 \&...
95 ]
96 ]
97 .SH OPIS
98 .IX "strace komenda" "" "\fLstrace\fR komenda"
99 .LP
100 W najprostszym przypadku, 
101 .B strace
102 wykonuje zadan± komendê 
103 .RI "`" komenda "'"
104 a¿ siê ona nie skoñczy.
105 Strace przechwytuje i nagrywa wywo³ania systemowe, dokonane przez proces,
106 oraz sygna³y, które do niego dotar³y. Nazwa ka¿dego wywo³ania, oraz jego
107 argumenty, s± wypisywane na wyj¶cie standardowe b³êdu, lub do pliku podanego
108 w opcji
109 .BR \-o . 
110 .LP
111 .B strace
112 jest u¿ytecznym narzêdziem diagnostyki, debuggowania. Administratorzy
113 systemów, diagnostycy i napotykacze problemów zauwa¿±, ¿e jest nieocenione
114 dla rozwi±zywania problemów z programami, których ¼róde³ nie ma wprost
115 dostêpnych. Strace bowiem nie potrzebuje rekompilacji aby go u¿yæ.
116 Studenci, hackerzy i ogólnie zainteresowani zauwa¿±, ¿e z ¶ledzenia wywo³añ
117 systemowych mo¿na siê wiele nauczyæ o systemie. Programi¶ci zauwa¿±, ¿e
118 skoro wywo³ania systemowe i sygna³y s± zdarzeniami zachodz±cymi na
119 interfejsie u¿ytkownik/j±dro, to ich bliska obserwacja mo¿e byæ bardzo
120 u¿yteczna do izolowania b³êdów, sprawdzania czysto¶ci i próbowania
121 wy³apywania ulotnych warunków.
122 .LP
123 Ka¿da ¶ledzona linia zawiera nazwê wywo³ania systemowego, za któr± nastêpuj±
124 jego argumenty, otoczone nawiasami, oraz jego warto¶æ zwracana.
125 Przyk³adowe ¶ledzenie komendy ``cat /dev/null'' daje:
126 .CW
127 open("/dev/null", O_RDONLY) = 3
128 .CE
129 Do b³êdów (zwykle warto¶ci zwracane \-1) dopisywany jest symbol errno i
130 napis b³êdu.
131 .CW
132 open("/foo/bar", O_RDONLY) = -1 ENOENT (No such file or directory)
133 .CE
134 Sygna³y s± drukowane jako symbol, oraz napis sygna³u. Fragment ¶ledzenia i
135 przerwania komendy ``sleep 666'' to:
136 .CW
137 sigsuspend([] <unfinished ...>
138 --- SIGINT (Interrupt) ---
139 +++ killed by SIGINT +++
140 .CE
141 Argumenty s± namiêtnie drukowane w formie symbolicznej.
142 Przyk³ad ten pokazuje dokonanie przekierowania ``>>xyzzy'':
143 .CW
144 open("xyzzy", O_WRONLY|O_APPEND|O_CREAT, 0666) = 3
145 .CE
146 Tutaj, wymienione trzy argumenty z open s± zdekodowane poprzez rozbicie
147 argumentu flagi na jego bitowe sk³adniki i wydrukowanie ich tradycyjnych
148 nazw, oraz warto¶ci ósemkowej praw. Choæ tradycyjne, lub natywne u¿ywanie
149 ró¿ni siê od ANSI lub POSIX, to te ostatnie formy s± jednak preferowane.
150 W niektórych wypadkach, wyj¶cie strace mo¿e byæ bardziej czytelne ni¿
151 ¼ród³a.
152 .LP
153 Wska¼niki struktury s± dereferencjonowane, a cz³onkowie s± odpowiednio
154 wy¶wietlani. We wszystkich wypadkach argumenty s± formatowane w stylu C.
155 Na przyk³ad, istota komendy ``ls -l /dev/null'' jest przechwytywana jako:
156 .CW
157 lstat("/dev/null", {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 3), ...}) = 0
158 .CE
159 Zauwa¿, jak zdereferencjonowano argument `struct stat' i jak wy¶wietlono
160 ka¿dego cz³onka. Praktycznie, zauwa¿ jak ostro¿nie zosta³ zdekodowany
161 cz³onek st_mode na jego maskê bitow±. Zauwa¿ te¿, ¿e w tym przyk³adzie,
162 pierwszym argumentem lstat jest wej¶cie wywo³ania systemowego, a drugim jego
163 wyj¶cie. Poniewa¿ argumenty wyj¶ciowe nie s± modyfikowane je¶li wywo³anie
164 zawiedzie, argumenty nie zawsze mog± zostaæ zdereferencjonowane. Na przyk³ad
165 próba ``ls \-l'' na nieistniej±cym pliku da nastêpuj±c± liniê:
166 .CW
167 lstat("/foo/bar", 0xb004) = -1 ENOENT (No such file or directory)
168 .CE
169 .LP
170 Wska¼niki znakowe s± dereferencjonowane i wy¶wietlane jako napisy C.
171 Niedrukowalne znaki s± reprezentowane w kodach eskejpowych.
172 Drukowanych jest tylko pierwszych
173 .I rozmiarnapisu
174 (domy¶lnie 32) bajtów napisu;
175 d³u¿sze napisy maj± za zamykaj±cym cytatem do³±czone wielokropki.
176 Oto przyk³ad ``ls \-l'', gdzie funkcja biblioteki getpwuid odczytuje plik z
177 has³em:
178 .CW
179 read(3, "root::0:0:System Administrator:/"..., 1024) = 422
180 .CE
181 \fRPodczas gdy struktury s± notowane przy u¿yciu nawiasów klamrowych, zwyk³e
182 wska¼niki i tablice s± drukowane przy u¿yciu nawiasów kwadratowych, z
183 przecinkami oddzielaj±cymi elementy. Oto przyk³ad wywo³ania komendy ``id''
184 na systemie z dodatkowymi id grup:
185 .CW
186 getgroups(32, [100, 0]) = 2
187 .CE
188 \fRZ drugiej strony, zbiory bitowe te¿ s± pokazywane w nawiasach kwadratowych,
189 lecz elementy s± oddzielane tylko przez spacjê. Oto pow³oka, przygotowuj±ca
190 siê do wywo³ania komendy zewnêtrznej:
191 .CW
192 sigprocmask(SIG_BLOCK, [CHLD TTOU], []) = 0
193 .CE
194 \fRDrugi argument jest zbiorem bitowym dwóch sygna³ów, SIGCHLD i SIGTTOU.
195 W niektórych wypadkach, zbiory bitowe s± tak pe³ne, ¿e bardziej sensowne
196 jest drukowanie nieustawionych elementów. W takiej sytuacji zbiór jest
197 poprzedzony tyld±, jak w nastêpuj±cym przyk³adzie:
198 .CW
199 sigprocmask(SIG_UNBLOCK, ~[], NULL) = 0
200 .CE
201 \fRDrugi argument wskazuje, ¿e ustawiono ca³y zestaw sygna³ów.
202 .SH OPCJE
203 .TP 12
204 .TP
205 .B \-c
206 Zliczaj czas, wywo³ania i b³êdy dla ka¿dego wywo³ania systemowego i zg³o¶ na
207 koñcu raport.
208 .TP
209 .B \-d
210 Przeka¿ na
211 .I stderr 
212 wyj¶cie debuggowe strace.
213 .TP
214 .B \-f
215 ¦led¼ procesy potomne, tworzone prze obecnie ¶ledzone procesy, jako rezultat
216 wywo³ania systemowego fork(2). Nowe procesy s± do³±czane tak szybko, jak
217 szybko zostaje uzyskany ich pid (poprzez warto¶æ zwracan± fork(2) w procesie
218 rodzicielskim). Oznacza to, ¿e takie dzieci mog± na chwilê byæ
219 niekontrolowane (szczególnie w wypadku vfork(2)), a¿ rodzic nie zostanie
220 znów wyshedulowany do dokoñczenia wywo³ania (v)fork(2).
221 Je¶li rodzic zdecyduje zaczekaæ (wait(2)) na dziecko, które obecnie jest
222 ¶ledzone, zostaje on zawieszony a¿ potomek siê nie zakoñczy.
223 .TP
224 .B \-ff
225 opcja
226 .B \-o
227 .I nazwapliku
228 bêdzie dzia³aæ, ¶ledzenie ka¿dego procesu jest zapisywane do
229 .IR nazwapliku.pid ,
230 gdzie pid jest numerycznym identyfikatorem procesu.
231 .TP
232 .B \-F
233 Na SunOS 4.x opcja ta powoduje próbê pod±¿ania za vforkami poprzez triki
234 dynamicznego linkowania. W przeciwnym wypadku, vforki nie bêd± ¶ledzone,
235 nawet z podan± opcj±
236 .BR \-f .
237 .TP
238 .B \-h
239 Wydrukuj podsumowanie pomocy.
240 .TP
241 .B \-i
242 Drukuj podczas wywo³ania systemowego wska¼nik instrukcji.
243 .TP
244 .B \-q
245 Zahamuj komunikaty o przy³±czaniu, od³±czaniu, etc. Dzieje siê to
246 automatycznie gdy wyj¶cie jest przekierowywane do pliku, a komenda jest
247 wykonywana bezpo¶rednio, zamiast przy³±czania.
248 .TP
249 .B \-r
250 Drukuj wzglêdny timestamp podczas ka¿dego wywo³ania systemowego. Nagruwa to
251 ró¿nicê czasu miêdzy pocz±tkami kolejnych wywo³añ systemowych.
252 .TP
253 .B \-t
254 Poprzed¼ ka¿d± liniê trace czasem dnia.
255 .TP
256 .B \-tt
257 Je¶li podane dwukrotnie, wydrukowany czas w³±cza mikrosekundy.
258 .TP
259 .B \-ttt
260 Je¶li podane trzykrotnie, wydrukowany czas w³±cza mikrosekundy, a prowadz±ca
261 porcja bêdzie zawieraæ liczbê sekund od epoki.
262 .TP
263 .B \-T
264 Poka¿ czas spêdzony na wywo³aniach systemowych. Nagrywa to ró¿nice czasowe
265 miêdzy pocz±tkiem i koñcem ka¿dego wywo³ania systemowego.
266 .TP
267 .B \-v
268 Drukuj nieskrócone wersje wywo³añ environment, stat, termios, itp. 
269 Struktury te s± wspólne w wywo³aniach, wiêc domy¶lne zachowanie wy¶wietla
270 rozs±dny podzbiór cz³onków. Gdy uzyjesz tej opcji, wy¶wietlone zostanie
271 wszystko.
272 .TP
273 .B \-V
274 Wydrukuj numer wersji strace.
275 .TP
276 .B \-x
277 Drukuj wszystkie niedrukowalne napisy w formacie szesnastkowym.
278 .TP
279 .B \-xx
280 Drukuj wszystkie napisy w formacie szesnastkowym.
281 .TP
282 .BI "\-a " kolumna
283 Justuj zwracane warto¶ci w konkretnej kolumnie (domy¶lnie 40).
284 .TP
285 .BI "\-e " wyra¿
286 Wyra¿enie kwalifikuj±ce, okre¶laj±ce które zdarzenia ¶ledziæ, lub jak je
287 ¶ledziæ. Formatem wyra¿enia jest:
288 .br
289 [kwalifikator=][!]warto¶æ1[,warto¶æ2]...
290 .br
291 gdzie kwalifikator jest jednym z trace, abbrev, verbose, raw, signal, read,
292 lub write, a warto¶æ jest zale¿naym od kwalifikatora symbolem, lub liczb±.
293 Domy¶lnym kwalifikatorem jest trace (¶led¼). U¿ycie wykrzyknika neguje zbiór
294 warto¶ci. Na przyk³ad \-eopen oznacza \-e trace=open, co z kolei oznacza, by
295 ¶ledziæ tylko wywo³ania systemowe open. Odwrotnie, \-etrace=!open oznacza,
296 by ¶ledziæ wszystkie wywo³ania poza wywo³aniami open. Dodatkowo, istniej±
297 specjalne warto¶ci all (wszystko) i none (nic).
298 .LP
299 Zauwa¿, ¿e niektóre pow³oki u¿ywaj± wykrzyknika dla rozszerzenia histori;
300 nawet wewn±trz cytowanych argumentów. Je¶li tak bêdzie, musisz wyeskejpowaæ
301 wykrzyknik odwrotnym uko¶nikiem.
302 .TP
303 .BI "\-e trace=" zbiór
304 ¦led¼ tylko podany zbiór wywo³añ systemowych. Opcja
305 .B \-c
306 jest u¿yteczna dla okre¶lania, które wywo³ania systemowe mog± byæ u¿yteczne
307 do ¶ledzenia. Na przyk³ad trace=open,close,read,write oznacza, by ¶ledziæ
308 tylko te cztery wywo³ania systemowe. Uwa¿aj z wyci±ganiem wniosków o ramce
309 u¿ytkownik/j±dro je¶li monitorujesz tylko podzbiór u¿ywanych wywo³añ
310 systemowych. Domy¶lnie, trace=all.
311 .TP
312 .B "\-e trace=file"
313 ¦led¼ wszystkie wywo³ania systemowe, które bior± nazwê pliku jako argument.
314 Mo¿esz my¶leæ o tym jak o skrócie dla
315 .BR "\-e trace=open,stat,chmod,unlink," ...
316 co mo¿e byæ u¿yteczne dla sprawdzenia, które pliki s± wa¿ne dla procesu.
317 Co wiêcej, u¿ycie skrótu zapewni, ¿e przypadkiem nie zapomnisz do³±czyæ
318 wywo³ania w rodzaju
319 .BR lstat .
320 .TP
321 .B "\-e trace=process"
322 ¦led¼ wszystkie wywo³ania systemowe, które zajmuj± siê zarz±dzaniem
323 procesami. Jest to przydatne do obserwowania kroków fork, wait i exec
324 procesu.
325 .TP
326 .B "\-e trace=network"
327 ¦led¼ wszystkie wywo³ania zwi±zane z sieci±.
328 .TP
329 .B "\-e trace=signal"
330 ¦led¼ wszystkie wywo³ania zwi±zane z sygna³ami.
331 .TP
332 .B "\-e trace=ipc"
333 ¦led¼ wszystkie wywo³ania zwi±zane z IPC.
334 .TP
335 .BI "\-e abbrev=" zbiór
336 Skróæ wyj¶cie przez niedrukowanie ka¿dego cz³onka du¿ych struktur.
337 Domy¶lnie abbrev=all. Opcja
338 .B \-v
339 ma efekt abbrev=none.
340 .TP
341 .BI "\-e verbose=" zbiór
342 Dereferencjuj struktury podanego zestawu wywo³añ systemowych. Domy¶lnie jest
343 verbose=all.
344 .TP
345 .BI "\-e raw=" zbiór
346 Drukuj czyste, niezdekodowane argumenty podanych wywo³añ systemowych. Opcja
347 te powoduje, ¿e wszystkie argumenty s± drukowane szesnastkowo. Jest to
348 najbardziej u¿yteczne, je¶li nie ufasz dekodowaniu, lub je¶li potrzebujesz
349 znaæ w³a¶ciwe warto¶ci numeryczne argumentów.
350 .TP
351 .BI "\-e signal=" zbiór
352 ¦led¼ tylko podany zbiór sygna³ów. Domy¶lnie jest signal=all. Na przyk³ad
353 signal=!SIGIO (lub signal=!io) powoduje, ¿e sygna³y SIGIO nie bêd± ¶ledzone.
354 .TP
355 .BI "\-e read=" zbiór
356 Dokonuj zrzutów szesnastkowych i ascii wszystkich danych odczytywanych z
357 deskryptorów podanych w zbiorze. Na przyk³ad, by zobaczyæ co dzieje siê na
358 wej¶ciu deskryptorów 3, 5, u¿yj:
359 .BR "\-e read=3,5" .
360 Zauwa¿, ¿e jest to niezale¿ne od normalnego ¶ledzenia wywo³ania read, które
361 jest kontrolowane opcj±
362 .BR "\-e trace=read" .
363 .TP
364 .BI "\-e write=" zbiór
365 Dokonuj zrzutów szesnastkowych i ascii wszystkich danych zapisywanych do
366 deskryptorów podanych w zbiorze. Na przyk³ad, by zobaczyæ co dzieje siê na
367 wyj¶ciu deskryptorów 3, 5, u¿yj:
368 .BR "\-e write=3,5" .
369 Zauwa¿, ¿e jest to niezale¿ne od normalnego ¶ledzenia wywo³ania write, które
370 jest kontrolowane opcj±
371 .BR "\-e trace=write" .
372 .TP
373 .BI "\-o " nazwapliku
374 Zapisuj wyj¶cie ¶ledzenia do pliku
375 .IR nazwapliku ,
376 a nie na standardowy b³±d.
377 U¿yj
378 .I nazwapliku.pid
379 je¶li u¿yto opcji
380 .BR \-ff .
381 Jesli argument zaczyna siê od `|' lub od `!', reszta argumentu traktowana
382 jest jak komenda i ca³e wyj¶cie jest do niej przesy³ane. Jest to przydatne
383 dla przekierowywania wyj¶cia debuggowego, nie dotykaj±c przekierowañ
384 normalnego wyj¶cia programu.
385 .TP
386 .BI "\-O " wydatki
387 Ustaw wydatki na ¶ledzenie wywo³añ systemowych na wydatki mikrosekund.
388 Jest to u¿yteczne dla przeci±¿enia domy¶lnej heurystyki dla zgadywania ile
389 czasu jest spêdzanego na czystym mierzeniu podczas timingowaniu wywo³añ
390 systemowych przy u¿yciu opcji
391 .BR \-c .
392 Dok³adno¶æ heurystyki mo¿e byæ ocenione przez timingowanie danego programu
393 bez ¶ledzenia i porównanie zebranego czasu wywo³añ systemowych do
394 ca³kowitego, wydanego przy u¿yciu
395 .B \-c .
396 .TP
397 .BI "\-p " pid
398 Podwie¶ siê do procesu o podanym identyfikatorze
399 .SM ID
400 .I pid
401 i rozpocznij ¶ledzenie.
402 ¦ledzenie mo¿e byæ zakoñczone w dowolnym momencie przez przerwanie z
403 klawiatury (\c
404 .SM CTRL\s0-C).
405 .B strace
406 odpowie przez odwieszenie siê od ¶ledzonego procesu(ów), pozostawiaj±c go
407 (je) w spokoju.
408 Do podwieszenia siê do kolejnych 32 procesów, mo¿na u¿ywaæ wielu opcji
409 .BR \-p ,
410 jako uzupe³nienie komendy
411 .I komenda
412 (która jest opcjonalna, je¶li podano przynajmniej jedn± opcjê
413 .BR \-p ).
414 .TP
415 .BI "\-s " wielko¶ænapisu
416 Podaj maksymaln± d³ugo¶æ drukowanego napisu (domy¶lnie 32). Zauwa¿, ¿e
417 nazwy plików nie s± uwa¿ane za napisy i zawsze s± drukowane w ca³o¶ci.
418 .TP
419 .BI "\-S " sortuj
420 Sotruj wyj¶ciowy histogram opcji
421 .B \-c
422 wed³ug podanego kryterium. Legalnymi warto¶ciami s±
423 time, calls, name, i nothing (domy¶lne to time).
424 .TP
425 .BI "\-u " u¿ytkownik
426 Uruchom komendê z userid i groupid, oraz dodatkowymi grupami
427 .IR u¿ytkownika .
428 Opcja ta jest u¿yteczna tylko podczas pracy z roota i umo¿liwia w³a¶ciwe
429 wywo³anie binariów z ustawionymi sgid/suid.
430 Bez tej opcji, programy suid/sgid s± wywo³ywane bez efektywnych przywilejów.
431 .SH "INSTALACJA SETUID"
432 Je¶li
433 .B strace
434 jest zainstalowane z suid root, to u¿ytkownik wywo³uj±cy bêdzie móg³ siê
435 pod³±czyæ i ¶ledziæ procesy dowolnego innego u¿ytkownika.
436 Dodatkowo, programy suid i sgid bêd± wywo³ywane i ¶ledzonez w³a¶ciwymi
437 efektywnymi przywilejami. Poniewa¿ robiæ to powinni tylko zaufani
438 u¿ytkownicy z przywilejami roota, takie instalowanie
439 .B strace
440 ma sens tylko, je¶li u¿ytkownicy uprawnieni do jego wywo³ywania maj±
441 odpowiednie przywileje. Na przyk³ad sensowne jest instalowanie specjalnej
442 wersji
443 .B strace
444 z prawami `rwsr-xr--', dla u¿ytkownika root i grupy trace, gdzie cz³onkowie
445 grupy trace s± zaufanymi osobami. Je¶li u¿ywasz tej w³a¶ciwo¶ci, pamiêtej by
446 zainstalowaæ niesuidowan± wersjê strace dla zwyk³ych luserów.
447 .SH "ZOBACZ TAK¯E"
448 .BR ptrace(2) ,
449 .BR proc(4) ,
450 .BR time(1) ,
451 .BR trace(1) ,
452 .BR truss(1)
453 .SH UWAGI
454 Szkoda, ¿e w systemach z bibliotekami dzielonym jest produkowanych tyle
455 ¶mieci podczas ¶ledzenia.
456 .LP
457 Jest dobrze my¶leæ o wej¶ciach i wyj¶ciach wywo³añ systemowych jak o
458 przep³ywie danych miêdzy przestrzeni± u¿ytkownika i j±dra. Poniewa¿
459 przestrzeñ u¿ytkownika i przestrzeñ j±dra s± oddzielone granic± ochrony
460 adresów, mo¿na czasem wyci±gaæ wnioski dedukcyjne o zachowaniu procesu na
461 podstawie warto¶ci wej¶cia i wyj¶cia.
462 .LP
463 W niektórych wypadkach wywo³anie systemowe mo¿e ró¿niæ siê od
464 udokumentowanego zachowania, lub mieæ inn± nazwê. Na przyk³ad na systemach
465 zgodnych z System V, rzeczywiste wywo³anie time(2) nie pobiera argumentu, a
466 funkcja stat nazywana jest xstat i bierze dodatkowy argument. 
467 Ró¿nice te s± normalne, lecz uczulone charakterystyki interfejsu wywo³añ
468 systemowych s± obs³ugiwane przez wrappery biblioteki C.
469 .LP
470 Na niektórych platformach proces, który ma za³±czone ¶ledzenie wywo³añ
471 systemowych z opcj±
472 .B \-p
473 otrzyma
474 .BR \s-1SIGSTOP\s0 .
475 Sygna³ ten mo¿e przerwaæ wywo³anie systemowe, które nie jest restartowalne.
476 Mo¿e to mieæ nieprzewidziane efekty na procesie, je¶li proces nie podejmuje
477 dzia³añ do restartowania wywo³ania systemowego.
478 .SH B£ÊDY
479 Programy, które u¿ywaj± bitu
480 .I setuid
481 nie bêd± mia³y efektywnych uprawnieñ u¿ytkownika podczas ¶ledzenia.
482 .LP
483 ¦ledzony proces ignoruje
484 .SM SIGSTOP
485 (poza platformami SVR4).
486 .LP
487 ¦ledzony proces, próbuj±cy zablokowaæ SIGTRAP otrzyma SIGSTOP w próbie
488 kontynuacji ¶ledzenia.
489 .LP
490 ¦ledzony program dzia³a powoli.
491 .LP
492 ¦ledzone procesy, które schodz± z komendy
493 .I komenda
494 mog± zostaæ pozostawione po sygnale przerwania (\c
495 .SM CTRL\s0-C).
496 .LP
497 Pod Linuksem, ¶ledzenie procesu init jest zabronione.
498 .LP
499 Opcja
500 .B \-i
501 jest s³abo wspierana.
502 .SH HISTORIA
503 .B strace
504 Oryginalny strace zosta³ napisany przez Paula Kranenburga
505 dla SunOS, który zosta³ zinspirowany narzêdziem trace.
506 Wersja SunOS strace zosta³a przeniesiona na Linuksa i rozszerzona przez
507 Branko Lankestera, który równie¿ napisa³ wsparcie j±dra Linuksa.
508 Mimo, ¿e Paul w 1992 wypu¶ci³ wersjê 2.5 strace, prace Branko opiera³y siê
509 na strace 1.5 z 1991. W 1993 Rick Sladkey po³±czy³ zmiany strace 2.5 z SunOS
510 ze zmianami wersji linuksowej, doda³ wiele w³a¶ciwo¶ci z truss'a z SVR4 i
511 wyda³ wersjê strace, która dzia³a³a na obydwu platformach. W 1994 Rick
512 przeportowa³ strace na SVR4 i Solaris, oraz napisa³ wsparcie automatycznej
513 konfiguracji. W 1995 przeportowa³ strace na Irixa i zmêczy³ siê pisaniem 
514 o sobie w trzeciej osobie.
515 .SH PROBLEMY
516 Problemy zwi±zane ze
517 .B strace
518 powinny byæ zg³aszane do obecnego opiekuna
519 .BR strace ,
520 którym jest Rick Sladkey <jrs@world.std.com>.
This page took 0.11416 seconds and 3 git commands to generate.