SIGBUS | |
---|---|
Beskrivelse | Bus fejlsignal |
Standard | ende med et hukommelsesdump |
SA_SIGINFO Koder | |
Har ingen specifikke koder |
På POSIX -systemer er SIGBUS et busfejlsignal ved adgang til fysisk hukommelse.
SIGBUS er en heltalskonstant defineret i header-filen signal.h. De symbolske navne på signalerne bruges i stedet for numrene, da numrene på signalerne kan være forskellige i forskellige implementeringer.
SIG - fælles signalpræfiks (fra engelsk signal ), BUS - engelsk. bus - databus (eller adressebus).
En proces kan få SIGBUS, hvis hukommelsen tilgås forkert:
Datafejljustering Forsøgt adgang, der ikke opfylder de tilpasningsregler, der er vedtaget på den processor, der er i brug. Adgang til ikke-eksisterende fysisk hukommelse Adgang til adresser, hvor der ikke er installeret hukommelse på computeren. En undtagelse ligner en segmenteringsfejl, men gælder for fysiske i stedet for virtuelle adresser. Objektspecifik hardwarefejl Et mere sjældent tilfælde, for eksempel på Solaris , opstår et sådant signal, når sider med virtuel hukommelse ikke længere er tilgængelige, på grund af problemer med at få adgang til det objekt, der er knyttet til dem (for eksempel når en mmap()fil, der er kortlagt med, efterfølgende blev afkortet [1] Arkiveret 16. juli 2010 på Wayback Machine .Operativsystemet kan give yderligere oplysninger om fejlen ved hjælp af signalstakken , som kan hjælpe udvikleren med at fejlfinde fejlen.
Som standard går processen ned med et hukommelsesdump (og/eller anden platformsspecifik operation), der kan bruges til at få information om de forhold, hvorunder undtagelsen opstod.
SIGBUS kan blive opsnappet eller ignoreret. At ignorere SIGBUS kan dog i nogle tilfælde føre til uforudsigelige resultater. Et eksempel på et program, der opsnapper SIGBUS, er en debugger , der er i stand til at analysere stakken og informere udvikleren på hvilket stadium fejlen opstod.
POSIX- signaler | |||
---|---|---|---|
| |||
|