Manuel de suivi dynamique Solaris

Sondes

Les sondes proc sont décrites dans le Tableau 25–1.

Tableau 25–1 Sondes proc

Sonder 

Description 

create

Sonde se déclenchant lors de la création d'un processus à l'aide de fork(2), forkall(2), fork1(2) ou vfork(2). Le psinfo_t correspondant au nouveau processus enfant est indiqué par args[0]. Vous pouvez différencier vfork des autres variantes fork en vérifiant PR_VFORKP dans l'élément pr_flag du thread de fork lwpsinfo_t. Vous pouvez différencier fork1 de forkall en étudiant les membres pr_nlwp de psinfo_t du processus parent (curpsinfo) et psinfo_t du processus enfant (args[0]). La sonde create ne se déclenchant qu'une fois le processus créé et étant donné que la création LWP fait partie de la création d'un processus, lwp-create ne se déclenchera que pour un ou des LWP créés au moment de la création d'un processus avant que la sonde create ne se déclenche pour le nouveau processus.

exec

Sonde se déclenchant si un processus charge une image de nouveau processus avec une variante de l'appel système exec(2) : exec(2), execle(2), execlp(2), execv(2), execve(2), execvp(2). La sonde exec se déclenche avant le chargement de l'image de processus. Des variables de processus comme execname et curpsinfo contiennent donc l'état du processus avant le chargement de l'image. Suite au déclenchement de la sonde exec, la sonde exec-failure ou exec-success se déclenche dans le même thread. Le chemin d'accès à l'image du nouveau processus est indiqué par args[0].

exec-failure

Sonde se déclenchant lors de l'échec d'une variante exec(2). La sonde exec-failure ne se déclenche qu'après le déclenchement de la sonde exec dans le même thread. La valeur errno(3C) est indiquée dans args[0].

exec-success

Sonde se déclenchant lors de la réussite d'une variante exec(2). Comme la sonde exec-failure, exec-success ne se déclenche qu'après le déclenchement de la sonde exec dans le même thread. Au moment du déclenchement de la sonde exec-success, des variables de processus comme execname et curpsinfo contiennent l'état du processus après le chargement de l'image du nouveau processus.

exit

Sonde se déclenchant lors de la sortie du processus en cours. La raison, qui est exprimée par l'un des codes SIGCHLD siginfo.h(3HEAD), est contenue dans args[0].

fault

Sonde se déclenchant lorsqu'un thread rencontre une panne machine. Le code de la panne (tel que défini dans proc(4)) se trouve dans args[0]. La structure siginfo correspondant à la panne est indiquée par args[1]. Seules les pannes accompagnées d'un signal peuvent déclencher la sonde fault.

lwp-create

Sonde se déclenchant lors de la création d'un LWP, résultant généralement de thr_create(3C). Le lwpsinfo_t correspondant au nouveau thread est indiqué par args[0]. psinfo_t du processus contenant le thread est indiqué par args[1].

lwp-start

Sonde se déclenchant dans le cadre d'un nouveau LWP. La sonde lwp-start se déclenche avant l'exécution d'une quelconque instruction au niveau utilisateur. Si le LWP est le premier du processus, la sonde start se déclenche, suivie de lwp-start.

lwp-exit

Sonde se déclenchant lors de la sortie d'un LWP, en raison d'un signal ou d'un appel explicite de thr_exit(3C).

signal-discard

Sonde se déclenchant lorsqu'un signal est envoyé à un processus à un seul thread. Le signal n'est pas bloqué et est ignoré par le processus. Dans ces conditions, le signal est ignoré à la génération. Les lwpsinfo_t et psinfo_t du processus cible et le thread se trouvent dans args[0] et args[1], respectivement. Le numéro de signal est indiqué dans args[2].

signal-send

Sonde se déclenchant lorsqu'un signal est envoyé à un thread ou un processus. La sonde signal-send se déclenche en cas d'envoi du processus ou du thread. Les lwpsinfo_t et psinfo_t du processus et du thread de réception se trouvent dans args[0] et args[1], respectivement. Le numéro de signal est indiqué dans args[2]. signal-send est toujours suivi de signal-handle ou de signal-clear dans le processus et le thread de réception.

signal-handle

Sonde se déclenchant immédiatement après la gestion d'un signal par un thread. La sonde signal-handle se déclenche en cas de gestion du signal par le thread. Le numéro de signal est indiqué dans args[0]. Un pointeur vers la structure siginfo_t correspondant au signal est indiqué dans args[1]. La valeur de args[1] si aucune structure siginfo_t n'est présente ou si l'indicateur SA_SIGINFO du gestionnaire de signaux n'est pas défini. L'adresse du gestionnaire de signaux du processus est indiquée dans args[2].

signal-clear

Sonde se déclenchant lorsqu'un signal en attente est effacé car le thread cible attendait le signal dans sigwait(2), sigwaitinfo(3RT) ou sigtimedwait(3RT). Dans ces conditions, le signal en attente est effacé et le numéro de signal est renvoyé à l'appelant. Le numéro de signal est indiqué dans args[0]. signal-clear se déclenche dans le cadre du thread initial en attente.

start

Sonde se déclenchant dans le cadre d'un nouveau processus. La sonde start se déclenche avant l'exécution d'une quelconque instruction au niveau utilisateur dans le processus.