DTrace limitato a Centos / Fedora


8

Volevo lavorare su un problema su un box Centos 6. Ho eseguito dtrace e non è riuscito. Non accetta -no -lo -Po alcuna opzione della riga di comando. Essa sostiene per accettare solo -h, -G, -C, -I, -s, e -o. Ho pensato che questo doveva essere qualcosa di strano Centos, quindi sono andato a verificare su una scatola Fedora 22. Stesso problema. Accetta solo un numero molto limitato di opzioni della riga di comando. Sono andato a provare una scatola Oracle, che è molto RedHat come Centos e simile a Fedora. Ha funzionato bene. Sono stato in grado di eseguire solo dtracee ottenere un lungo elenco di tutte le opzioni della riga di comando. Sono tornato a Centos e Fedora. Quando entro dtrace, l'output èUsage /bin/dtrace [--help] [-h | -G] [-C [-I<Path>]] -s File.d [-o <File>]. Quindi, dopo un'ora di Google, ho rinunciato. Come si fa a far funzionare correttamente dtrace su Centos / Fedora? Ho provato sia come utente root che come utente. Ho cercato pacchetti per aumentare la funzionalità. Ho provato a rimuovere e reinstallare dtrace. L'unica cosa rimasta è rimuovere il pacchetto e installare dtrace dal sorgente.


Sulla macchina Oracle, eseguire qualcosa come dtrace -n BEGINfunziona (mostra la traccia). Sulle macchine Centos / Fedora, ottengo l'errore di utilizzo perché -n non è supportato. Quasi nessuna opzione della riga di comando è supportata.
Kainaw,

Risposte:


8

Il dtrace che trovi su Oracle Linux non è il dtrace che viene fornito con systemtap Linux e che troverai su ogni altra distribuzione Linux.

Piuttosto, è una porta di Solaris dtrace fornita da Oracle e disponibile solo su Oracle Linux.

I due comandi sono completamente diversi e hanno scopi diversi.

La funzione di traccia del kernel standard di Linux è nota come systemtap, e Oracle Dtrace è solo un wrapper proprietario. Puoi sempre usare systemtap direttamente .


4

Lo dtracescript che arriva su distribuzioni Linux non Oracle è un piccolo strumento del systemtapprogetto. Fornisce solo la <sys/sdt.h>funzionalità di creazione di oggetti / file di intestazione relativa a solaris dtrace. Lo mappa su strutture di dati systemtap, quindi le stap -L 'process("a.out").mark("*")sonde elencheranno la strumentazione.


3

Ora puoi usare BPFtrace!

https://github.com/iovisor/bpftrace

BPFtrace is a high-level tracing language for Linux enhanced Berkeley Packet Filter (eBPF) available in recent Linux kernels (4.x). BPFtrace uses LLVM as a backend to compile scripts to BPF-bytecode and makes use of BCC for interacting with the Linux BPF system, as well as existing Linux tracing capabilities: kernel dynamic tracing (kprobes), user-level dynamic tracing (uprobes), and tracepoints. The BPFtrace language is inspired by awk and C, and predecessor tracers such as DTrace and SystemTap. BPFtrace was created by Alastair Robertson.

tipi di sonda bpftrace

Vecchia risposta:

You can install the Linux port of Sun/Oracle dtrace from source here: https://github.com/dtrace4linux/linux

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.