Manuel de suivi dynamique Solaris

Ajout de sondes à un code d'application

Une fois les sondes définies dans un fichier .d, vous devez augmenter votre code source pour indiquer leur position de déclenchement. Examinez l'exemple suivant de code source d'application C :

void
main_look(void)
{
	...
	query = wait_for_new_query();
	process_query(query)
	...
}

Pour ajouter un site de sondes, ajoutez une référence à la macro DTRACE_PROBE() définie dans <sys/sdt.h>, comme illustré dans l'exemple suivant :

#include <sys/sdt.h>
...

void
main_look(void)
{
	...
	query = wait_for_new_query();
	DTRACE_PROBE2(myserv, query__receive, query->clientname, query->msg);
	process_query(query)
	...
}

Le suffixe 2 du nom de la macro DTRACE_PROBE2 indique le nombre d'arguments transmis à la sonde. Les deux premiers arguments de la macro de la sonde correspondent au nom du fournisseur et au nom de la sonde. De ce fait, ils doivent être identiques à la définition de votre sonde et de votre fournisseur de langage D. Les arguments de macro restants sont ceux assignés aux variables arg0..9 de DTrace lors du déclenchement de la sonde. Le code source de votre application peut contenir plusieurs références au même nom de fournisseur et de sonde. Si plusieurs références à la même sonde figurent dans votre code source, elles sont toutes susceptibles de déclencher la sonde.