DTrace terbatas pada Centos / Fedora

8

Saya ingin mengerjakan masalah pada kotak Centos 6. Saya berlari dtrace dan gagal. Itu tidak menerima -natau -latau -Patau opsi baris perintah apa pun. Ini klaim hanya menerima -h, -G, -C, -I, -s, dan -o. Saya pikir ini pasti hal Centos yang aneh, jadi saya pergi untuk memverifikasi pada kotak Fedora 22. Masalah yang sama. Hanya menerima sejumlah opsi baris perintah yang sangat terbatas. Saya pergi untuk mencoba kotak Oracle, yang sangat mirip Redat seperti Centos dan mirip dengan Fedora. Itu bekerja dengan baik. Saya dapat menjalankan hanya dtracedan mendapatkan daftar panjang dari semua opsi baris perintah. Saya kembali ke Centos dan Fedora. Ketika saya masuk dtrace, hasilnya adalahUsage /bin/dtrace [--help] [-h | -G] [-C [-I<Path>]] -s File.d [-o <File>]. Jadi, setelah satu jam Googling, saya menyerah. Bagaimana Anda membuat dtrace bekerja dengan baik di Centos / Fedora? Saya sudah mencoba keduanya sebagai root dan pengguna. Saya telah mencari paket untuk meningkatkan fungsionalitas. Saya sudah mencoba menghapus dan menginstal ulang dtrace. Satu-satunya yang tersisa adalah menghapus paket dan menginstal dtrace dari sumber.

kainaw
sumber
Pada mesin Oracle, menjalankan sesuatu seperti dtrace -n BEGINkarya (menunjukkan jejak). Pada mesin Centos / Fedora, saya mendapatkan kesalahan Penggunaan karena -n tidak didukung. Hampir tidak ada opsi baris perintah yang didukung.
kainaw

Jawaban:

8

Dtrace yang Anda temukan di Oracle Linux bukanlah dtrace yang hadir dengan Linux systemtap dan Anda akan menemukannya di setiap distribusi Linux lainnya.

Alih-alih, ini adalah port Solaris dtrace yang disediakan oleh Oracle dan hanya tersedia di Oracle Linux.

Kedua perintah sama sekali berbeda dan memiliki tujuan yang berbeda.

Fasilitas penelusuran kernel Linux standar dikenal sebagai systemtap, dan Oracle dtrace hanyalah pembungkus berpemilik atas hal itu. Anda selalu dapat menggunakan systemtap secara langsung .

Michael Hampton
sumber
4

The dtraceScript yang datang pada distro non-Oracle linux adalah alat kecil dari systemtapproyek. Ini hanya menyediakan <sys/sdt.h>fungsionalitas objek / header-file terkait-bangunan dari dtrace solaris. Ini memetakannya ke systemtap struktur data, jadi stap -L 'process("a.out").mark("*")probe akan mendaftar instrumentasi.

fche
sumber
3

Sekarang Anda dapat menggunakan 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.

jenis probe bpftrace

Jawaban lama:

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

Dylan
sumber