Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A felhasználói módú és a kernel módú kód különböző rutinokat használ a hibakeresőbe való betöréshez.
User-Mode Rutintörés
A törési rutin kivételt okoz az aktuális folyamatban, hogy a hívószál jelezhesse a hívási folyamathoz társított hibakeresőt.
Ha felhasználói módú programból szeretne hibakeresőt létrehozni, használja a DebugBreak függvényt. Prototípusa a következő:
VOID DebugBreak(VOID);
Amikor egy felhasználói módú program meghívja DebugBreak, a következő lehetséges műveletek fognak történni:
Ha egy felhasználói módú hibakereső van csatolva, a program a hibakeresőbe fog törni. Ez azt jelenti, hogy a program leáll, és a hibakereső aktívvá válik.
Ha egy felhasználói módú hibakereső nincs csatlakoztatva, de a rendszerindításkor engedélyezve volt a kernel módú hibakeresés, a teljes számítógép a kernel-hibakeresőbe fog törni. Ha a rendszermag-hibakereső nincs csatlakoztatva, a számítógép lefagy, és vár egy kernel-hibakeresőre.
Ha nincs csatlakoztatva felhasználói módú hibakereső, és a kernel módú hibakeresés nincs engedélyezve, a program kezeletlen kivétellel leáll, és a rendszer aktiválja a post mortem (just-in-time) hibakeresőt. További információért lásd: a postmortem hibakeresés engedélyezése, .
Kernel-Mode Szünet Rutinok
Amikor egy kernel módú program betör a hibakeresőbe, a teljes operációs rendszer lefagy, amíg a kernel-hibakereső engedélyezi a végrehajtás folytatását. Ha nincs kernel-hibakereső, a rendszer hibaellenőrzésként kezeli.
A DbgBreakPoint rutin kernel módú kódban működik, de egyébként hasonló a DebugBreak felhasználói módú rutinhoz.
A DbgBreakPointWithStatus rutin szintén törést okoz, de 32 bites állapotkódot is küld a hibakeresőnek.
A KdBreakPointés KdBreakPointWithStatus rutinjai megegyeznek DbgBreakPoint és DbgBreakPointWithStatus, amikor az ellenőrzött buildkörnyezetben vannak lefordítva. Amikor az ingyenes buildkörnyezetben összefoglaljuk, nincs hatása.
Kernel-Mode feltételes megszakítási rutinok
A kernel módú kódhoz két feltételes törési rutin érhető el. Ezek a rutinok egy logikai kifejezést tesztelnek. Ha a kifejezés hamis, a végrehajtás leáll, és a hibakereső aktívvá válik.
A ASSERT makró egy logikai kifejezést tesztel. Ha a kifejezés hamis, a végrehajtás leáll, és a hibakereső aktívvá válik. A hibás kifejezés és a programbeli helye megjelenik a hibakeresőben.
A ASSERTMSG makró megegyezik ASSERT, azzal a kivételrel, hogy lehetővé teszi egy további üzenet küldését a hibakeresőnek.
ASSERT és ASSERTMSG csak akkor aktívak, ha az ellenőrzött buildkörnyezetben fordítják le őket. Az ingyenes buildkörnyezetben történő fordításnak nincs hatása.