SIGBUS | |
---|---|
Leírás | Busz hibajelzés |
Alapértelmezett | memóriakiíratással fejezzük be |
SA_SIGINFO kódok | |
Nincsenek konkrét kódjai |
POSIX rendszereken a SIGBUS egy buszhibajel a fizikai memória elérésekor.
SIGBUS a fejlécfájlban meghatározott egész szám signal.h. A számok helyett a jelek szimbolikus neveit használjuk, mivel a jelek száma a különböző megvalósításokban eltérő lehet.
SIG - közös jel előtag ( angol jelzésből ), BUS - angol. busz - adatbusz (vagy címbusz).
Egy folyamat megkaphatja a SIGBUS-t, ha a memóriához nem megfelelően hozzáférnek:
Az adatok eltolódása Olyan hozzáférési kísérlet, amely nem felel meg a használt processzoron elfogadott igazítási szabályoknak. Nem létező fizikai memória elérése Olyan címek elérése, amelyekhez nincs memória telepítve a számítógépen. A kivétel hasonló a szegmentációs hibához, de inkább a fizikai, mint a virtuális címekre vonatkozik. Objektumspecifikus hardverhiba Egy ritkább eset, például a Solaris rendszeren , ez a jel akkor fordul elő, amikor a virtuális memória oldalai már nem érhetők el a hozzájuk társított objektum elérésével kapcsolatos problémák miatt (például amikor a leképezettmmap() fájlt később csonkolták [1] Archivált : 2010. július 16. a Wayback Machine -nél .Az operációs rendszer a jelverem segítségével további információkat nyújthat a hibáról , ami segíthet a fejlesztőnek a hiba elhárításában .
Alapértelmezés szerint a folyamat memóriakiíratással (és/vagy más platformspecifikus művelettel) összeomlik, amely felhasználható a kivétel előfordulásának körülményeire vonatkozó információk megszerzésére.
A SIGBUS elfogható vagy figyelmen kívül hagyható. A SIGBUS figyelmen kívül hagyása azonban bizonyos esetekben kiszámíthatatlan eredményekhez vezethet. A SIGBUS-t elfogó programra példa egy hibakereső , amely képes elemezni a veremet, és tájékoztatni a fejlesztőt arról, hogy a hiba melyik szakaszában történt.
POSIX jelek | |||
---|---|---|---|
| |||
|