Je voulais voir le code source du gestionnaire par défaut de SIGABRT dans Linux C, mais je ne pouvais pas le trouver. Pourriez-vous s'il vous plaît aidez-vous à le trouver?Comment trouver le code source de la fonction de gestionnaire de signal par défaut?
1
A
Répondre
1
http://lxr.free-electrons.com est un excellent moyen de lire la source du noyau Linux.
Une recherche rapide pour SIGABRT
montre qu'il est utilisé uniquement par la macro SIG_KERNEL_COREDUMP_MASK. Cette macro est à son tour utilisée exclusivement par sig_kernel_coredump. Traçage de l'utilisation de cette macro nous conduit à l'endroit où les gestionnaires de signaux sont exécutés en kernel/signal.c:2301.
Ceci correspond à ce que nous disent les man pages, c'est-à-dire que l'action par défaut pour SIGABRT est de terminer le processus et de vider la mémoire principale du programme.
dans Linux C? Vous voulez dire gestionnaire de signaux de noyau Linux? –
Il n'y a pas de gestionnaire de signal par défaut au niveau de l'utilisateur pour SIGABRT (ou tout autre signal, venir à cela). Le comportement par défaut de SIGABRT est de se terminer avec un core dump; tout est géré par le noyau, pas par le code au niveau de l'utilisateur. –