DTrace ユーザーガイド

DTrace の組み込み変数

次に、DTrace フレームワークのすべての組み込み変数を一覧します。

int64_t arg0, ..., arg9

プローブに渡される最初の 10 個の入力引数は、生の 64 ビット整数として表現されます。プローブに渡された引数の数が 10 個未満の場合、残りの変数はゼロを返します。

args[]

現在のプローブに渡される型付き引数です (存在する場合)。args[] 配列へのアクセスには整数インデックスが使用されますが、各要素には、指定のプローブ引数に対応する型が定義されます。たとえば、read(2) システムコールプローブで args[] を参照する場合、args[0] の型は intargs[1] の型は void *args[2] の型は size_t になります。

uintptr_t caller

現在のプローブを入力する直前の、現在のスレッドのプログラムカウンタの場所を示します。

chipid_t chip

現在の物理チップの CPU チップ識別子です。詳細は、『Solaris 動的トレースガイド』の第 26 章「sched プロバイダ」を参照してください。

processorid_t cpu

現在の CPU の CPU 識別子です。詳細は、『Solaris 動的トレースガイド』の第 26 章「sched プロバイダ」を参照してください。

cpuinfo_t *curcpu

現在の CPU の CPU 情報です。詳細は、『Solaris 動的トレースガイド』の第 26 章「sched プロバイダ」を参照してください。

lwpsinfo_t *curlwpsinfo

現在のスレッドに関連付けられている軽量プロセス (LWP) の LWP 状態です。この構造の詳細は、proc(4) のマニュアルページに記載されています。

psinfo_t *curpsinfo

現在のスレッドに関連付けられているプロセスのプロセス状態です。この構造の詳細は、proc(4) のマニュアルページに記載されています。

kthread_t *curthread

現在のスレッドのオペレーティングシステムカーネルの内部データ構造 kthread_t のアドレスです。kthread_t<sys/thread.h> に定義されています。この変数とその他のオペレーティングシステムデータ構造の詳細は、『SOLARIS インターナル — カーネル構造のすべて』を参照してください。

string cwd

現在のスレッドに関連付けられているプロセスの現在の作業ディレクトリ名です。

uint_t epid

現在のプローブの有効なプローブ ID (EPID) です。この整数は、特定の述語と一連のアクションによって有効化された特定のプローブを一意に識別します。

int errno

このスレッドによって直前に実行されたシステムコールから返されるエラー値です。

string execname

現在のプロセスを実行するため、exec(2) に渡された名前です。

gid_t gid

現在のプロセスの実グループ ID です。

uint_t id

現在のプローブのプローブ ID です。この ID は、DTrace によって発行された、システム内のプローブを一意に識別する識別子です。この ID を確認するには、dtrace -l を実行します。

uint_t ipl

現在の CPU でのプローブ起動時の割り込み優先レベル (IPL) を表します。Solaris オペレーティングシステムカーネルでの割り込みレベルと割り込み処理の詳細は、『SOLARIS インターナル — カーネル構造のすべて』を参照してください。

lgrp_id_t lgrp

現在の CPU をメンバーに持つ遅延グループの近傍性グループ ID です。DTrace での CPU 管理については、『Solaris 動的トレースガイド』の第 26 章「sched プロバイダ」を参照してください。近傍性グループについては、『プログラミングインタフェース』の第 4 章「近傍性グループ API」を参照してください。

pid_t pid

現在のプロセスのプロセス ID です。

pid_t ppid

現在のプロセスの親プロセスのプロセス ID です。

string probefunc

現在のプローブの記述に含まれる関数名の部分です。

string probemod

現在のプローブの記述に含まれるモジュール名の部分です。

string probename

現在のプローブの記述に含まれる名前の部分です。

string probeprov

現在のプローブの記述に含まれるプロバイダ名の部分です。

psetid_t pset

現在の CPU が含まれているプロセッサセットのプロセッサセット ID です。詳細は、『Solaris 動的トレースガイド』の第 26 章「sched プロバイダ」を参照してください。

string root

現在のスレッドに関連付けられているプロセスのルートディレクトリ名です。

uint_t stackdepth

現在のスレッドのプローブ起動時のスタックフレームの深さを表します。

id_t tid

現在のスレッドのスレッド ID です。スレッドにユーザープロセスが関連付けられている場合、この値は、pthread_self(3C) の呼び出し結果と等しくなります。

uint64_t timestamp

ナノ秒タイムスタンプカウンタの現在の値です。このカウンタの値は、過去の任意の時点から増分しています。そのため、このカウンタは、相対計算専用です。

uid_t uid

現在のプロセスの実ユーザー ID です。

uint64_t uregs[]

現在のスレッドの、プローブ起動時のユーザーモード登録値 (保存済み) です。uregs[] 配列の使用方法については、『Solaris 動的トレースガイド』の第 33 章「ユーザープロセスのトレース」を参照してください。

uint64_t vtimestamp

ナノ秒タイムスタンプカウンタの現在の値です。このカウンタは、現在のスレッドの CPU 上での実行時間を示します。これには、DTrace の述語やアクションの実行にかかる時間は含まれません。このカウンタの値は、過去の任意の時点から増分しています。そのため、このカウンタは、相対時間計算専用です。

uint64_t walltimestamp

1970 年 1 月 1 日の協定世界時 00:00 から現在までの経過時間をナノ秒単位で示します。