DTRACE(1) General Commands Manual DTRACE(1) JMENO dtrace - Nastroj pro generovani statickych sondaznich bodu kompatibilni s Dtrace. POUZITI dtrace -s file [OPTIONS] POPIS Prikaz dtrace prevadi definici sondaznich bodu predanou ve file.d na odpovidajici hlavickovy soubor, pokud je pouzit prepinac -h, nebo na odpovidajici objektovy soubor, pokud je pouzit prepinac -G. VOLBY -h generuje hlavickovy soubor pro systemtap. -G generuje objektovy soubor pro systemtap. -o file urcuje vystupni soubor. Pri volbe -G, je vychozi nazev vystupniho souboru file.o; pri volbe -h pak file.h. -C spust nad vsstupnim souborem cpp preprocesor, pokud je dan prepinac -h. -I file pouzij danou "include" cestu, pokud je dan prepinac -C . -k Zachovej docasne soubory, napriklad C zdrojovy kod v pripade, ze je dan prepinac -G. PRIKLADY Systemptap je kompatibilni se specifikaci statickych dtrace sond na urovni zdrojoveho kodu. Mejme soubor test.d s nasledujicim obsahem: provider sdt_probes { probe test_0 (int type); probe test_1 (struct astruct node); }; struct astruct {int a; int b;}; Pak prikaz "dtrace -s test.d -G" vygeneruje objektovy soubor s definici sondaznich bodu test.o a prikaz "dtrace -s test.d -h" vytvori hlavickovy soubor test.h. Nasledne muze aplikace vyuzivat vygenerovana makra takto: #include "test.h" ... struct astruct s; ... SDT_PROBES_TEST_0(value); ... if (SDT_PROBES_TEST_1_ENABLED()) SDT_PROBES_TEST_1(expensive_function(s)); SEMAFORY Semafory jsou logicke promenne, ktere systemtap vyuziva k preskoceni nakladne inicializace sondy (priprava argumentu) v pripadech, kdy je to mozne. Systemtap hodnotu semaforu nastavuje automaticky, kdyz prislusny skript bezi. Semafory jsou definovany v ramci objektoveho souboru "test.o", ktery tudiz musi byt slinkovan s aplikaci. V nekterych pripadech ovsem nejsou semafory nutne ani uzitecne. V tom pripade lze vynechanim "test.o" zjednodusit sestavovani aplikace. K preskoceni zavislosti na semaforech vlozte include "" do aplikace pred "test.h" takto: #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)); V tomto pripade se nejdrive upravi ENABLED() test. VIZ TAKE stap(1), stappaths(7) CHYBY Pouzijte projektovou bugzillu, nebo mailing list. http://sourceware.org/systemtap/, . error::reporting(7stap), https://sourceware.org/systemtap/wiki/HowToReportBugs DTRACE(1)