dtrace(1)

Från Wiki.linux.se
Version från den 11 mars 2025 kl. 08.06 av Admin (diskussion | bidrag)
Hoppa till navigering Hoppa till sök

NAMN

dtrace - Dtrace-kompatibelt verktyg för generering av statiska sonddefinitioner för användarapplikationer.

SYNOPSIS

dtrace -s fil [OPTIONER]

BESKRIVNING

Kommandot dtrace konverterar sondbeskrivningar definierade i fil.d till en sondheaderfil via alternativet -h eller en sonddeskriptionsfil via alternativet -G.

OPTIONER

  • -h genererar en systemtap-headerfil.
  • -G genererar en systemtap-sondbeskrivningsobjektfil.
  • -o fil
  • Anger namnet på utdatafilen. Om -G ges skapas fil.o; om -h ges skapas fil.h.
  • -C kör cpp-preprocessorn på indatafilen när -h används.
  • -I fil

Anger sökvägen till inkluderingsfiler för cpp när -C används.

  • -k behåller temporära filer, exempelvis C-källkod för -G.

EXEMPEL

Systemtap är källkodskompatibelt med Dtrace-stöd för statiska sonder i användarapplikationer. Givet en fil test.d innehållande:

provider sdt_probes
{
  probe test_0 (int typ);
  probe test_1 (struct astruct nod);
};
struct astruct {int a; int b;};

Då skapar kommandot dtrace -s test.d -G sonddefinitionen test.o och kommandot dtrace -s test.d -h skapar sondheadern test.h. Därefter kan applikationen använda de genererade makrona så här:

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

SEMAFORER

Semaforer är flaggvariabler som används av sonder för att undvika onödig processorkostnad vid beredning av argument till sonder som kanske inte ens är aktiva. De sätts och rensas automatiskt av systemtap när ett relevant skript körs, så att argumenthanteringskostnaden bara uppstår när det är nödvändigt. Dessa semaforvariabler definieras i test.o-objektfilen, vilken därför måste länkas in i applikationen.

I vissa fall behövs inte semaforvariabler. Genom att utesluta dem kan byggprocessen förenklas, genom att slippa inkludera test.o. För att skippa beroendet av semaforvariabler, inkludera <sys/sdt.h> i applikationen innan test.h:

#include <sys/sdt.h>
#include "test.h"
...
struct astruct s;
...
SDT_PROBES_TEST_0(varde);
...
if (SDT_PROBES_TEST_1_ENABLED())
   SDT_PROBES_TEST_1(billig_funktion(s));

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

SE ÄVEN

BUGGAR

Använd Bugzilla-länken på projektets webbplats eller vår e-postlista för felrapporter:

COLOFON

Denna sida är en del av systemtap-projektet (ett verktyg för spårning och live-systemanalys). Mer information finns på [1]. Felrapporter skickas till systemtap@sourceware.org. Sidan hämtades från projektets uppströms-Git-repo ⟨git://sourceware.org/git/systemtap.git⟩ den 2 februari 2025.


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.