Voltar à lista
Linux x86_64Sinais#131

sigaltstack

Define ou consulta a pilha alternativa usada para executar tratadores de sinal.

Descrição

Permite registrar uma região de memória separada da pilha normal da thread para rodar tratadores de sinal — essencial para tratar SIGSEGV causado por estouro de pilha (stack overflow), já que nesse caso a pilha normal está esgotada.

man 2

Assinatura

int sigaltstack(const stack_t * ss, stack_t * old_ss);

Parâmetros

ParâmetroTipoDescrição
ssconst stack_t *Nova pilha alternativa a instalar, ou NULL para não alterar.
old_ssstack_t *Se não for NULL, recebe a configuração anterior.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1ssconst stack_t *
rsiargumento 2old_ssstack_t *

Valor de retorno

0 em sucesso; -1 em erro, com errno definido.

Códigos de erro (errno)

EFAULT(14)
Endereço de memória inválido (ponteiro fora do espaço de endereçamento válido).
EINVAL(22)
Argumento inválido.
ENOMEM(12)
Memória insuficiente para completar a operação.
EPERM(1)
Operação não permitida (falta de privilégio).

Relacionadas