Din ioctl på /devices/pseudo/[email protected]:poll
enhet (eller /dev/pool
) verkar hanteras av kärnfunktion från common/io/devpoll.c-filen (onlinekopia - http://fxr.watson.org/fxr/source/common/io/devpoll.c?v=OPENSOLARIS
)
Mer exakt med dpioctl
funktion:
692 dpioctl(dev_t dev, int cmd, intptr_t arg, int mode, cred_t *credp, int *rvalp)
zhihuifan, efter att ha kontrollerat din stacktrace ser jag att ditt program hade kört:
main() -> ... nteveque() -> ioctl()
Sedan anropades signalhanldern.. Jag ser ingen sändning av signaler från dpioctl, så jag tror att signalen skickades av någon extern funktion (eller program eller av användare):
--- called from signal handler with signal 0 (SIGEXIT) ---
Sedan anropades signalhanteraren för användarutrymme:
sigacthandler -> call_user_handler -> __sighndlr
-> sslsstehdlr
sslsstehdlr
gjorde många åtgärder och enligt min kunskap och POSIX-standarder ("2.4 Signalkoncept"
från The Open Group Base Specifications Issue 6; IEEE Std 1003.1, 2004 Edition), kan signalhanteraren endast anropa (direkt eller indirekt) funktioner som anges i tabellen
... enorm lista men det finns ingen ptherad_sigmask
här...