SIGBUS

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.

Etimológia

SIG  - közös jel előtag ( angol  jelzésből ), BUS  - angol.  busz  - adatbusz (vagy címbusz).

Használat

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.