SIGILL | |
---|---|
Beskrivelse | Ugyldig instruktion |
Standard | ende med et hukommelsesdump |
SA_SIGINFO Koder | |
ILL_ILLOPC | ugyldig opkode |
ILL_ILLOPN | ugyldig operand |
ILL_ADR | ugyldig adressering |
ILL_ILLTRP | ugyldig fælde |
ILL_PRVOPC | privilegeret drift |
ILL_PRVREG | privilegeret register |
ILL_COPROC | coprocessor fejl |
ILL_BADSTK | stak fejl |
På POSIX - systemer er SIGILL et signal, der sendes til en proces, når den forsøger at udføre en forkert udformet, ikke-eksisterende eller privilegeret instruktion.
SIGILL er en heltalskonstant defineret i signal.h. De symbolske navne på signalerne bruges i stedet for numrene, da numrene på signalerne kan være forskellige i forskellige implementeringer.
SIG er et almindeligt signalpræfiks (fra engelsk signal ), ILL er en forkortet stavning af engelsk. ulovlig undervisning
Der er mange grunde til SIGILL. En af de mest almindelige årsager er en kontroloverførsel til en tilfældig hukommelsesplacering - som et resultat af kontroloverførsel gennem en ikke-initialiseret eller beskadiget pointer (eller returadresse på stakken). Andre tilfælde omfatter compilerfejl, korruption af filsystemet eller et forsøg på at udføre en instruktion, der kræver særlige privilegier.
På mange platforme, efterhånden som hardware udvikler sig, introduceres nye instruktioner, registre og lignende, og applikationer bygget til moderne hardware kan indeholde instruktioner, der ikke genkendes på ældre hardware. For eksempel vil SIGILL forekomme, når du forsøger at udføre MMX-instruktioner på en i486- processor , der ikke understøtter dem.
SIGILL kan blive fanget eller ignoreret. Men at ignorere SIGILL kan i nogle tilfælde føre til uforudsigelige resultater.
POSIX- signaler | |||
---|---|---|---|
| |||
|