SEÑAL | |
---|---|
Descripción | Instrucción inválida |
Defecto | terminar con un volcado de memoria |
Códigos SA_SIGINFO | |
ILL_ILLOPC | código de operación no válido |
ILL_ILLOPN | operando inválido |
ILL_ADR | direccionamiento inválido |
ILL_ILLTRP | trampa inválida |
ILL_PRVOPC | operación privilegiada |
ILL_PRVREG | registro privilegiado |
ILL_COPROC | error del coprocesador |
ILL_BADSTK | error de pila |
En los sistemas POSIX , SIGILL es una señal enviada a un proceso cuando intenta ejecutar una instrucción incorrecta, inexistente o privilegiada.
SIGILL es una constante entera definida en el signal.h. Los nombres simbólicos de las señales se utilizan en lugar de los números, ya que los números de las señales pueden diferir en diferentes implementaciones.
SIG es un prefijo de señal común (del inglés signal ), ILL es una forma abreviada de inglés. instrucción ilegal
Hay muchas razones para SIGILL. Una de las causas más comunes es una transferencia de control a una ubicación de memoria aleatoria, como resultado de la transferencia de control a través de un puntero no inicializado o dañado (o dirección de retorno en la pila). Otros casos incluyen errores del compilador, corrupción del sistema de archivos o un intento de ejecutar una instrucción que requiere privilegios especiales.
En muchas plataformas, a medida que el hardware evoluciona, se introducen nuevas instrucciones, registros y similares, y las aplicaciones creadas para el hardware moderno pueden contener instrucciones que no se reconocen en el hardware más antiguo. Por ejemplo, se producirá SIGILL al intentar ejecutar instrucciones MMX en un procesador i486 que no las admita.
SIGILL puede ser capturado o ignorado. Sin embargo, ignorar SIGILL puede, en algunos casos, conducir a resultados impredecibles.
Señales POSIX | |||
---|---|---|---|
| |||
|