Manuel de suivi dynamique Solaris

La sonde END

La sonde ENDse déclenche après toutes les autres. Cette sonde ne se déclenche qu'à l'issue de l'achèvement de toutes les autres. Elle peut être utilisée pour procéder au traitement de l'état rassemblé ou pour formater la sortie. L'action printa() est par conséquent souvent utilisée dans la sonde END. Les sondes BEGIN et END peuvent être utilisées ensemble pour mesurer le temps total écoulé au cours du suivi :

BEGIN
{
	start = timestamp;
}

/*
 * ... other tracing actions...
 */

END
{
	printf("total time: %d secs", (timestamp - start) / 1000000000);
}

Pour connaître les autres utilisations courantes de la sonde END, reportez-vous aux sections Normalisation des données et printa().

De même qu'avec la sonde BEGIN, aucun argument n'est défini pour la sonde END. Le contexte dans lequel la sonde END se déclenche est arbitraire et il ne faut pas s'y fier.

Lors du suivi avec l'option bufpolicy définie sur fill, un espace approprié est réservé pour héberger les enregistrements suivis dans la sonde END. Pour de plus amples informations, reportez-vous à la section Stratégie fill et sondes END.


Remarque –

L'action exit() provoque l'arrêt du suivi et le déclenchement de la sondeEND. Toutefois, un certain délai est constaté entre l'appel de l'action exit() et le déclenchement de la sonde END. Pendant ce délai, aucune sonde ne se déclenche. Après qu'une sonde appelle l'action exit(), la sonde END ne se déclenche que lorsque le consommateur DTrace détermine que exit() a été appelée et qu'il procède à l'arrêt du suivi. La vitesse de vérification du statut de sortie peut être définie avec l'option statusrate. Pour plus d'informations, reportez-vous au Chapitre16Options et paramètres réglables.