Skip to content
Syscall BSD#53

svc · unix #53

sigaltstack

Définit ou interroge la stack de signaux alternative utilisée par les handlers SA_ONSTACK.

Prototype

int sigaltstack(struct sigaltstack *nss, struct sigaltstack *oss);

Retour: int

Arguments

NameTypeDirDescription
nssstruct sigaltstack-
ossstruct sigaltstack-

Historique des versions

XNU tagmacOS#
xnu-1456.1.26macOS 10.6 Snow Leopard53
xnu-1486.2.11—53
xnu-1504.15.3—53
xnu-1504.3.12—53
xnu-1504.7.4—53
xnu-1504.9.17—53
xnu-1504.9.26—53
xnu-1504.9.37—53

Notes

Indispensable quand un handler peut survenir sur un thread dont la stack principale est épuisée (SIGSEGV d'overflow de stack). Le buffer doit faire au moins SIGSTKSZ octets et survivre à tout handler qui l'utilise. Chaque pthread peut avoir sa propre alt stack ; le runtime en configure une pour le thread principal dans certains toolchains Apple.

Détection

La probe DTrace syscall::sigaltstack:entry expose la base de la nouvelle stack dans arg0 et ss_flags. Les rapports de crash signalent l'usage de l'alt stack quand un SIGSEGV y est capturé.

API associées

sigactionsigprocmasksigsuspendkill