Solaris 動的トレースガイド

BEGIN プローブ

BEGIN プローブは、一番最初に起動するプローブです。すべての BEGIN 節が完了するまで、ほかのプローブは起動しません。BEGIN プローブでは、ほかのプローブ内で使用するすべての状態を初期化できます。以下は、BEGIN プローブを使って、mmap(2) の保護ビットとテキスト表現のマッピングを行う連想配列を初期化する例です。

BEGIN
{
	prot[0] = "---";
	prot[1] = "r--";
	prot[2] = "-w-";
	prot[3] = "rw-";
	prot[4] = "--x";
	prot[5] = "r-x";
	prot[6] = "-wx";
	prot[7] = "rwx";
}

syscall::mmap:entry
{
	printf("mmap with prot = %s", prot[arg2 & 0x7]);
}

BEGIN プローブは、未知のコンテキストで起動します。つまり、stack()ustack() の出力も、コンテキスト固有の変数の値 (例: execname) も決まっていません。これらの値は、有意な情報であると解釈すべきではありません。BEGIN プローブには、引数は定義されていません。