Manuel de suivi dynamique Solaris

Déclaration des sondes

Les sondes SDT sont déclarées à l'aide des macros DTRACE_PROBE, DTRACE_PROBE1, DTRACE_PROBE2, DTRACE_PROBE3 et DTRACE_PROBE4 à partir de <sys/sdt.h>. Le nom du module et le nom des fonctions d'une sonde basée sur le fournisseur SDT correspondent au module du noyau et aux fonctions de la sonde. Le nom de la sonde dépend du nom donné dans la macro DTRACE_PROBEn. Si le nom ne contient pas deux traits de soulignement consécutifs (__), le nom de la sonde est écrit dans la macro. Si le nom contient deux traits de soulignement consécutifs, ils sont convertis en un tiret simple ( -) dans le nom de la sonde. Par exemple, si une macro DTRACE_PROBE spécifie transaction__start, la sonde SDT s'appellera transaction-start. Cette substitution permet au code C de fournir des noms de macro ne constituant pas des identificateurs en C valides sans spécifier de chaîne.

Comme DTrace intègre au tuple identifiant une sonde le nom du module du noyau et des fonctions, vous n'avez pas à ajouter ces informations dans le nom de la sonde pour éviter les collisions d'espace de noms. Vous pouvez utiliser la commande dtrace -l -P sdt -m module sur votre pilote module pour répertorier les sondes que vous avez installées, ainsi que leurs noms complets, tels que les utilisateurs de DTrace pourront les afficher.