1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
|
.\" -*- nroff -*-
.TH DTRACE 1
.SH JMÉNO
dtrace \- Nástroj pro generování statických sondážních bodů kompatibilní s Dtrace.
.\" macros
.\" do not nest SAMPLEs
.de SAMPLE
.br
.nr oldin \\n(.i
.RS
.nf
.nh
..
.de ESAMPLE
.hy
.fi
.RE
.in \\n[oldin]u
..
.SH POUŽITÍ
.br
.B dtrace \-s \fIfile\fR [\fBOPTIONS\fR]
.SH POPIS
Příkaz dtrace převádí definici sondážních bodů předanou ve \fIfile.d\fR na
odpovídající hlavičkový soubor, pokud je použit přepínač \fB\-h\fR, nebo na
odpovídající objektový soubor, pokud je použit přepínač \fB\-G\fR.
.SH VOLBY
.PP
.TP
.B \-h
generuje hlavičkový soubor pro systemtap.
.TP
.B \-G
generuje objektový soubor pro systemtap.
.TP
.B \-o \fIfile\fR
určuje výstupní soubor. Při volbě \fB\-G\fR, je výchozí název výstupního
souboru \fIfile.o\fR; při volbě \fB\-h\fR pak \fIfile.h\fR.
.TP
.B \-C
spusť nad vsstupním souborem cpp preprocesor, pokud je dán přepínač \fB\-h\fR.
.TP
.B \-I \fIfile\fR
použij danou "include" cestu, pokud je dán přepínač \fB\-C\fR .
.TP
.B \-k
Zachovej dočasné soubory, například C zdrojový kód v případě, že je dán přepínač
\fB\-G\fR.
.SH PŘÍKLADY
Systemptap je kompatibilní se specifikací statických dtrace sond na úrovni
zdrojového kódu. Mějme soubor \fItest.d\fR s následujícím obsahem:
.SAMPLE
provider sdt_probes
{
probe test_0 (int type);
probe test_1 (struct astruct node);
};
struct astruct {int a; int b;};
.ESAMPLE
Pak příkaz \fI"dtrace\ \-s\ test.d\ \-G"\fR vygeneruje objektový soubor s
definicí sondážních bodů \fItest.o\fR a příkaz \fI"dtrace\ \-s\ test.d\ \-h"\fR
vytvoří hlavičkový soubor \fItest.h\fR. Následně může aplikace využívat
vygenerovaná makra takto:
.SAMPLE
#include "test.h"
\.\.\.
struct astruct s;
\.\.\.
SDT_PROBES_TEST_0(value);
\.\.\.
if (SDT_PROBES_TEST_1_ENABLED())
SDT_PROBES_TEST_1(expensive_function(s));
.ESAMPLE
.SH SEMAFORY
Semafory jsou logické proměnné, které systemtap využívá k přeskočení nákladné
inicializace sondy (příprava argumentů) v případech, kdy je to možné.
Systemtap hodnotu semaforů nastavuje automaticky, když příslušný skript běží.
Semafory jsou definovány v rámci objektového souboru \fI"test.o"\fR, který
tudíž musí být slinkován s aplikací.
.PP
V některých případech ovšem nejsou semafory nutné ani užitečné. V tom případě
lze vynecháním \fI"test.o"\fR zjednodušit sestavování aplikace. K přeskočení
závislostí na semaforech vložte include \fI"<sys/sdt.h>"\fR do aplikace před
\fI"test.h"\fR takto:
.SAMPLE
#include <sys/sdt.h>
#include "test.h"
\.\.\.
struct astruct s;
\.\.\.
SDT_PROBES_TEST_0(value);
\.\.\.
if (SDT_PROBES_TEST_1_ENABLED())
SDT_PROBES_TEST_1(cheap_function(s));
.ESAMPLE
V tomto případě se nejdříve upraví ENABLED() test.
.SH VIZ TAKÉ
.nh
.nf
.IR stap (1),
.IR stappaths (7)
.SH CHYBY
Použijte projektovou bugzillu, nebo mailing list.
.nh
.BR http://sourceware.org/systemtap/ ", " <systemtap@sourceware.org> .
.hy
.PP
.IR error::reporting (7stap),
.BR https://sourceware.org/systemtap/wiki/HowToReportBugs
.hy
|