Guia de rastreamento dinâmico Solaris

Teste BEGIN

O teste BEGIN é acionado antes de qualquer outro teste. Nenhum outro teste será acionado até que todas as cláusulas de BEGIN tiverem sido concluídas. Este teste pode ser usado para inicializar qualquer estado que seja necessário em outros testes. O exemplo seguinte mostra como usar o teste BEGIN para inicializar uma matriz de associação para mapear entre os bits de proteção de mmap(2) e uma representação textual:

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

O teste BEGIN é acionado em um contexto inesperado. Isso significa que a saída de stack() ou ustack (), e o valor de variáveis específicas de contexto (por exemplo, execname), são todos arbitrários. Não se deve confiar nem interpretar esses valores para definir quaisquer informações significativas. Nenhum argumento é definido para o teste BEGIN.