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.1153
xnu-1504.15.353
xnu-1504.3.1253
xnu-1504.7.453
xnu-1504.9.1753
xnu-1504.9.2653
xnu-1504.9.3753

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