「DTrace」の版間の差分
提供: FreeBSD入門
(ページの作成:「<!-- vim: fileencoding=utf-8 filetype=mediawiki --> [[{{PAGENAME}}]] とは、ダイナミックトレーシングコンパイラとトレーシングユーテリテ...」) |
(→カーネルのサポートを追加する) |
||
行27: | 行27: | ||
options KDTRACE_FRAME # amd64 - ensure frames are compiled in | options KDTRACE_FRAME # amd64 - ensure frames are compiled in | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | # [[FreeBSD]] 9.0 移行は、[[ | + | # [[FreeBSD]] 9.0 移行は、[[カーネル]] [[コンフィグレーションファイル]]に WITH_CTF=1を定義しなければなりません。 |
#: <syntaxhighlight lang="bash"> | #: <syntaxhighlight lang="bash"> | ||
makeoptions WITH_CTF=1 | makeoptions WITH_CTF=1 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
== カーネルの再構築とインストール == | == カーネルの再構築とインストール == |
2014年3月13日 (木) 23:20時点における版
DTrace とは、ダイナミックトレーシングコンパイラとトレーシングユーテリティです。
読み方
- 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