Solaris 动态跟踪指南

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 探测器未定义任何参数。