dtrace(1)

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

NAME

dtrace - Dtrace-kompatibelt verktyg för att generera statiska probdefinitioner för användarapplikationer.

SYNOPSIS

dtrace -s fil [OPTIONS]

BESKRIVNING

dtrace konverterar probbeskrivningar definierade i fil.d till en probhuvudfil via alternativet -h eller en probbeskrivningsfil via alternativet -G.

ALTERNATIV

-h - Genererar en systemtap-huvudfil.

-G - Genererar en systemtap-probbeskrivningsobjektfil.

-o fil - Namn på utdatafilen. Om -G anges kommer utdatafilen att heta fil.o; om -h anges kommer utdatafilen att heta fil.h.

-C - Kör C-preprocessorn på indatafilen när -h används.

-I fil - Anger en include-sökväg till C-preprocessorn när -C används.

-k - Behåller temporära filer, t.ex. C-källkod för -G alternativet.

EXEMPEL

Systemtap är källkompatibelt med dtrace för användarapplikationers statiska probstöd. Givet en fil test.d med innehållet:

provider sdt_probes
{
    probe test_0 (int type);
    probe test_1 (struct astruct node);
};
struct astruct {int a; int b;};

Då kommer kommandot dtrace -s test.d -G att skapa probdefinitionen test.o och kommandot dtrace -s test.d -h att skapa probhuvudfilen test.h. Applikationen kan sedan använda de genererade makrona på följande sätt:

#include "test.h"
...
struct astruct s;
...
SDT_PROBES_TEST_0(value);
...
if (SDT_PROBES_TEST_1_ENABLED())
    SDT_PROBES_TEST_1(expensive_function(s));

SEMAFORER

Semaforer är flaggvariabler som används av probers för att undvika kostsam förberedelse av argument till probers som kanske inte ens är aktiva. De sätts och rensas automatiskt av systemtap när ett relevant skript körs. Semaforvariabler definieras inom test.o-objektfilen, vilken därför måste länkas till en applikation.

Ibland är semaforvariabler onödiga. För att hoppa över beroendet av dessa inkluderar du <sys/sdt.h> innan test.h i applikationen:

#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));

I detta läge är ENABLED()-testet alltid satt till 1.

SE OCKSÅ

BUGGAR

Använd Bugzilla-länken på projektets webbsida eller vår e-postlista:

COLOPHON

Denna sida är en del av systemtap-projektet (ett verktyg för spårning och analys av körande system). Mer information finns på https://sourceware.org/systemtap/.

Om du har en felrapport för denna manualsida, skicka den till systemtap@sourceware.org.


Sidslut

Orginalhemsidan på Engelska :https://man7.org/linux/man-pages/man1/dtrace.1.html


Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till PC Service som har sponsrat Linux.se med webbhotell.