.\" -*- 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""\fR do aplikace před \fI"test.h"\fR takto: .SAMPLE #include #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/ ", " . .hy .PP .IR error::reporting (7stap), .BR https://sourceware.org/systemtap/wiki/HowToReportBugs .hy