DTrace
提供: FreeBSD入門
スポンサーリンク
DTrace とは、ダイナミックトレーシングコンパイラとトレーシングユーテリティです。
読み方
- DTrace
- でぃーとれーす
目次
概要
カーネルのサポートを追加する
- デバッグシンボルを有効にします。
-
makeoptions DEBUG="-g"
-
- FreeBSD 10よりも前なら追加します。
- options KDTRACE_HOOKS # all architectures - enable general DTrace hooks
- options DDB_CTF # all architectures - kernel ELF linker loads CTF data
- AMD64(すべてのバージョン)は、下記を追加します。
-
options KDTRACE_FRAME # amd64 - ensure frames are compiled in
-
- FreeBSD 9.0 移行は、カーネル コンフィグレーションファイルに WITH_CTF=1を定義しなければなりません。
-
makeoptions WITH_CTF=1
-
カーネルの再構築とインストール
- FreeBSD 9 以降
-
make buildkernel KERNCONF=DTRACE
-
- FreeBSD 8-STABLE 以前
-
make buildkernel WITH_CTF=1 KERNCONF=DTRACE
-
- カーネルのインストールとリブート
- make installkernel KERNCONF=DTRACE
- shutdown -r now
はじめに
- すべての DTrace カーネルモジュールをロードします。
-
kldload dtraceall
-
- DTrace フックを確認します。
-
dtrace -l | head
-
- カーネルが正しくコンパイルされているか確認します。
-
dtrace -n 'syscall:::entry { @num[execname] = count(); }'
- 下記のエラーが出たら、前に戻って、コンパイルしなおして下さい。
- dtrace: invalid probe specifier syscall:::entry { @num[execname] = count(); }: "/usr/lib/dtrace/psinfo.d", line 37: failed to copy type of 'pr_uid': Type information is in parent and unavailable
-
ユーザーランド DTrace
FreeBSD 9.0 以降
- ユーザーランド DTrace サポートのために、 make.conf ( もしくは src.conf ) に下記の行を追加します。
- STRIP=
- CFLAGS+=-fno-omit-frame-pointer
- make.conf (or src.conf)に WITH_CTF=1 を追加して、再構築と install world します。
- make buildworld
- shutdown -r NOW
- boot -s
- make installworld
- reboot
FreeBSD 8-STABLE 以前
- make.conf
- STRIP=
- CFLAGS+=-fno-omit-frame-pointer
- 再構築と install world
- make WITH_CTF=1 buildworld
- shutdown -r NOW
- boot -s
- make installworld
関連項目
- dtrace
- デバッグ
- カーネル (kernel)
- カスタムカーネル
- コンフィグレーションファイル
- make world
- Accept Filter
- freebsd-update
- カーネルモジュール
- kldxref
- DTrace
- ktrace/kdump
ツイート
スポンサーリンク