DTrace limitado no Centos / Fedora


8

Eu queria trabalhar em um problema em uma caixa Centos 6. Corri o dtrace e falhou. Não aceita -nou -lou -Pou qualquer opção de linha de comando. Alega para aceitar apenas -h, -G, -C, -I, -s, e -o. Achei que isso deveria ser uma coisa estranha do Centos, então fui verificar em uma caixa do Fedora 22. Mesmo problema. Ele aceita apenas um número muito limitado de opções de linha de comando. Fui tentar uma caixa Oracle, que é muito mais RedHat como o Centos e semelhante ao Fedora. Funcionou bem. Eu era capaz de executar apenas dtracee obter uma longa lista de todas as opções de linha de comando. Voltei ao Centos e ao Fedora. Quando entro dtrace, a saída éUsage /bin/dtrace [--help] [-h | -G] [-C [-I<Path>]] -s File.d [-o <File>]. Então, depois de uma hora pesquisando no Google, eu desisti. Como você faz o dtrace funcionar corretamente no Centos / Fedora? Eu tentei tanto como root e como usuário. Eu procurei por pacotes para aumentar a funcionalidade. Eu tentei remover e reinstalar o dtrace. A única coisa que resta é remover o pacote e instalar o dtrace da fonte.


Na máquina Oracle, executar algo como dtrace -n BEGINfunciona (mostra o rastreio). Nas máquinas Centos / Fedora, recebo o erro de uso porque -n não é suportado. Quase nenhuma opção de linha de comando é suportada.
kainaw

Respostas:


8

O dtrace que você encontra no Oracle Linux não é o dtrace que acompanha o Linux systemtap e que você encontrará em todas as outras distribuições Linux.

Em vez disso, é uma porta do Solaris dtrace fornecida pela Oracle e disponível apenas no Oracle Linux.

Os dois comandos são completamente diferentes e têm finalidades diferentes.

O recurso de rastreamento de kernel padrão do Linux é conhecido como systemtap, e o dtrace da Oracle é apenas um invólucro proprietário sobre isso. Você sempre pode usar systemtap diretamente .


4

O dtracescript que vem nas distribuições Linux não Oracle é uma pequena ferramenta do systemtapprojeto. Ele fornece apenas a <sys/sdt.h>funcionalidade de criação de objeto / arquivo de cabeçalho relacionada ao solaris dtrace. Ele o mapeia para estruturas de dados da systemtap, para que os stap -L 'process("a.out").mark("*")probes listem a instrumentação.


3

Agora você pode usar o 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.

tipos de sonda bpftrace

Resposta antiga:

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.