Press "Enter" to skip to content

Qu'est-ce que Siginfo ?

LA DESCRIPTION. La structure siginfo fournit aux processus des informations sur la raison pour laquelle un signal a été généré, ou un processus qui surveille les processus enfants peut recevoir des informations qui spécifient pourquoi un processus enfant a changé d'état.

Q. Où est défini Siginfo_t ?

Description : La structure siginfo_t est utilisée pour contenir des informations sur un signal. Il est défini dans , qui inclut. Cette structure comprend les éléments suivants : si_signo. Le numéro de signalisation.

Q. Que sont les signaux Posix ?

Le signal SIGABRT est envoyé à un processus pour lui dire d'abandonner, c'est-à-dire de se terminer. Le signal est généralement initié par le processus lui-même lorsqu'il appelle la fonction d'abandon de la bibliothèque standard C, mais il peut être envoyé au processus de l'extérieur comme n'importe quel autre signal.

Q. Qu'est-ce que Si_addr ?

info->si_addr est l'adresse mémoire défaillante. Comme indiqué dans le lien que vous avez fourni, l'adresse au moment où le signal a été émis peut être récupérée à partir de void * ptr .

Q. Qu'est-ce que Si_kernel ?

Selon la page de manuel, SI_KERNEL est un code "qui peut être placé dans si_code pour n'importe quel signal". Dans strace, vous voyez SIGSEGV {si_signo=SIGSEGV, si_code=SI_KERNEL, si_addr=0} .

Q. Que contient la structure de données siginfo _ t ?

La structure siginfo_t contient les champs suivants : Numéro de signal en cours de livraison. Ce champ est toujours défini. Code signalétique. Ce champ est toujours défini. Reportez-vous à Codes de signal pour plus d'informations sur les paramètres valides et pour lesquels des champs restants sont valides pour chaque code. Valeur du signal. Si différent de zéro, une valeur errno associée à ce signal.

Q. Où se trouve le champ SI _ code dans SA _ SIGINFO ?

Le champ si_code Le champ si_code à l'intérieur de l'argument siginfo_t qui est passé à un gestionnaire de signal SA_SIGINFO est une valeur (pas un masque de bits) indiquant pourquoi ce signal a été envoyé. Pour un événement ptrace (2), si_code contiendra SIGTRAP et aura l'événement ptrace dans l'octet de poids fort : (SIGTRAP | PTRACE_EVENT_foo << 8).

Q. Quel est le signal valide en sigaction ( 7 ) ?

(Voir signal (7) pour un aperçu des signaux.) signum spécifie le signal et peut être n'importe quel signal valide sauf SIGKILL et SIGSTOP . Si act n'est pas NULL, la nouvelle action pour le signal signum est installée à partir de act. Si oldact n'est pas NULL, l'action précédente est enregistrée dans oldact .

Q. Pourquoi nu tcracker ne génère-t-il pas siginfo _ t ?

En raison de divers problèmes spécifiques à Windows, la plate-forme N u TCRACKER est incapable de générer un siginfo_t correct dans certaines situations. Dans ces cas, le champ si_code est défini sur SI_NOINFO pour indiquer que les autres champs (autres que si_signo) ne sont pas valides. Tous les codes répertoriés dans la section DESCRIPTION ne sont pas réellement générés.