「DTrace」の版間の差分

提供: FreeBSD入門
移動: 案内検索
(ページの作成:「<!-- vim: fileencoding=utf-8 filetype=mediawiki --> [[{{PAGENAME}}]] とは、ダイナミックトレーシングコンパイラとトレーシングユーテリテ...」)
 
 
(同じ利用者による、間の2版が非表示)
行1: 行1:
<!-- vim: fileencoding=utf-8 filetype=mediawiki
+
[[DTrace]] とは、ダイナミックトレーシングコンパイラとトレーシングユーテリティです。
-->
+
 
+
[[{{PAGENAME}}]] とは、ダイナミックトレーシングコンパイラとトレーシングユーテリティです。
+
  
 
'''読み方'''
 
'''読み方'''
 
+
;[[DTrace]]:でぃーとれーす
;[[{{PAGENAME}}]]:でぃーとれーす
+
  
 
__TOC__
 
__TOC__
  
 
== 概要 ==
 
== 概要 ==
 
[[{{PAGENAME}}]]
 
 
 
== カーネルのサポートを追加する ==
 
== カーネルのサポートを追加する ==
 
+
# デバッグシンボルを有効にします。
# [[デバッグシンボル]]を有効にします。
+
 
#: <syntaxhighlight lang="bash">
 
#: <syntaxhighlight lang="bash">
 
makeoptions DEBUG="-g"
 
makeoptions DEBUG="-g"
行23: 行15:
 
#: options KDTRACE_HOOKS      # all architectures - enable general DTrace hooks
 
#: options KDTRACE_HOOKS      # all architectures - enable general DTrace hooks
 
#: options DDB_CTF            # all architectures - kernel ELF linker loads CTF data
 
#: options DDB_CTF            # all architectures - kernel ELF linker loads CTF data
# [[AMD64]](すべてのバージョン)は、下記を追加します。
+
# AMD64(すべてのバージョン)は、下記を追加します。
 
#: <syntaxhighlight lang="bash">
 
#: <syntaxhighlight lang="bash">
 
options KDTRACE_FRAME        # amd64 - ensure frames are compiled in
 
options KDTRACE_FRAME        # amd64 - ensure frames are compiled in
 
</syntaxhighlight>
 
</syntaxhighlight>
# [[FreeBSD]] 9.0 移行は、[[カーネルコンフィグレーションファイル]]に WITH_CTF=1を定義しなければなりません。
+
# [[FreeBSD]] 9.0 移行は、[[カーネル]] [[コンフィグレーションファイル]]に WITH_CTF=1を定義しなければなりません。
 
#: <syntaxhighlight lang="bash">
 
#: <syntaxhighlight lang="bash">
 
makeoptions WITH_CTF=1
 
makeoptions WITH_CTF=1
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
 
== カーネルの再構築とインストール ==
 
== カーネルの再構築とインストール ==
 
 
# [[FreeBSD]] 9 以降
 
# [[FreeBSD]] 9 以降
 
#: <syntaxhighlight lang="bash">
 
#: <syntaxhighlight lang="bash">
行46: 行35:
 
#: make installkernel KERNCONF=DTRACE
 
#: make installkernel KERNCONF=DTRACE
 
#: shutdown -r now
 
#: shutdown -r now
 
 
== はじめに ==
 
== はじめに ==
 
 
# すべての [[DTrace]] カーネルモジュールをロードします。
 
# すべての [[DTrace]] カーネルモジュールをロードします。
 
#: <syntaxhighlight lang="bash">
 
#: <syntaxhighlight lang="bash">
行63: 行50:
 
#: 下記のエラーが出たら、前に戻って、コンパイルしなおして下さい。
 
#: 下記のエラーが出たら、前に戻って、コンパイルしなおして下さい。
 
#: 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: 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 ==
 
== ユーザーランド DTrace ==
 
 
=== FreeBSD 9.0 以降 ===
 
=== FreeBSD 9.0 以降 ===
 
 
# ユーザーランド  [[DTrace]] サポートのために、 make.conf ( もしくは src.conf ) に下記の行を追加します。
 
# ユーザーランド  [[DTrace]] サポートのために、 make.conf ( もしくは src.conf ) に下記の行を追加します。
 
#: STRIP=
 
#: STRIP=
行77: 行61:
 
#: make installworld
 
#: make installworld
 
#: reboot
 
#: reboot
 
 
=== FreeBSD 8-STABLE 以前 ===
 
=== FreeBSD 8-STABLE 以前 ===
 
 
# make.conf
 
# make.conf
 
#: STRIP=
 
#: STRIP=
行88: 行70:
 
#: boot -s
 
#: boot -s
 
#: make installworld
 
#: make installworld
 
 
== 関連項目 ==
 
== 関連項目 ==
 
 
* [[dtrace]]
 
* [[dtrace]]
 
* [[デバッグ]]
 
* [[デバッグ]]
 +
{{kernel}}
 +
<!-- vim: fileencoding=utf-8 filetype=mediawiki
 +
-->

2015年9月27日 (日) 17:38時点における最新版

DTrace とは、ダイナミックトレーシングコンパイラとトレーシングユーテリティです。

読み方

DTrace
でぃーとれーす

概要

カーネルのサポートを追加する

  1. デバッグシンボルを有効にします。
    makeoptions DEBUG="-g"
  2. FreeBSD 10よりも前なら追加します。
    options KDTRACE_HOOKS # all architectures - enable general DTrace hooks
    options DDB_CTF # all architectures - kernel ELF linker loads CTF data
  3. AMD64(すべてのバージョン)は、下記を追加します。
    options KDTRACE_FRAME        # amd64 - ensure frames are compiled in
  4. FreeBSD 9.0 移行は、カーネル コンフィグレーションファイルに WITH_CTF=1を定義しなければなりません。
    makeoptions WITH_CTF=1

カーネルの再構築とインストール

  1. FreeBSD 9 以降
    make buildkernel KERNCONF=DTRACE
  2. FreeBSD 8-STABLE 以前
    make buildkernel WITH_CTF=1 KERNCONF=DTRACE
  3. カーネルのインストールとリブート
    make installkernel KERNCONF=DTRACE
    shutdown -r now

はじめに

  1. すべての DTrace カーネルモジュールをロードします。
    kldload dtraceall
  2. DTrace フックを確認します。
    dtrace -l | head
  3. カーネルが正しくコンパイルされているか確認します。
    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 以降

  1. ユーザーランド DTrace サポートのために、 make.conf ( もしくは src.conf ) に下記の行を追加します。
    STRIP=
    CFLAGS+=-fno-omit-frame-pointer
  2. make.conf (or src.conf)に WITH_CTF=1 を追加して、再構築と install world します。
    make buildworld
    shutdown -r NOW
    boot -s
    make installworld
    reboot

FreeBSD 8-STABLE 以前

  1. make.conf
    STRIP=
    CFLAGS+=-fno-omit-frame-pointer
  2. 再構築と install world
    make WITH_CTF=1 buildworld
    shutdown -r NOW
    boot -s
    make installworld

関連項目