Manuel de suivi dynamique Solaris

Sonde BEGIN

La sonde BEGIN se déclenche avant toutes les autres. Aucune autre sonde ne se déclenche avant l'achèvement de toutes les clauses BEGIN. Cette sonde peut être utilisée pour initialiser n'importe quel état nécessaire dans d'autres sondes. L'exemple suivant illustre comment utiliser la sonde BEGIN pour initialiser un tableau associatif pour mapper entre des bits de protection mmap(2) et une représentation textuelle :

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]);
}

La sonde BEGIN se déclenche dans un contexte non spécifié. Cela signifie que la sortie de stack() ou ustack(), et la valeur de variables spécifiques au contexte (par exemple, execname), sont toutes arbitraires. Il convient de ne pas se fier à ces valeurs et de ne pas les interpréter en vue d'en tirer des informations significatives. Aucun argument n'est défini dans la sonde BEGIN.