Megosztás a következőn keresztül:


A metódus és a távoli hibakeresés kombinálása

Néha hasznos vezérelni a felhasználói módú hibakeresőt a kernel hibakeresőből, miközben a felhasználói módú hibakeresőt egyszerre hibakeresési kiszolgálóként használjuk.

Fontos

A távoli hibakeresés használatakor további fontos biztonsági szempontokat is figyelembe kell venni. További információkért, beleértve a biztonságos mód engedélyezésével kapcsolatos információkat is, olvassa el A távoli hibakeresési és Windows hibakeresési eszközök biztonsági szempontjaicímű témakört.

Ez a konfiguráció például akkor hasznos, ha a felhasználói mód szimbólumai egy szimbólumkiszolgálón találhatók. A felhasználói módú hibakereső kernel-hibakeresőből való vezérlésének szabványos konfigurációjában a két hibakereső interakciója kis számú elévüléshez vezethet a szinkronizálás során, és ezek a leállások megakadályozhatják a szimbólumkiszolgáló hitelesítését. Az itt ismertetett összetettebb konfiguráció elkerülheti ezt a problémát.

Megjegyzés A forgatókönyv leírásában célalkalmazás a hibakeresés alatt álló felhasználói módú alkalmazásra, célszámítógépre a célalkalmazást és a CDB- vagy NTSD-folyamatot tartalmazó számítógépre, gazdaszámítógépre a kernel-hibakeresőt tartalmazó számítógépre hivatkozik.

A technika használatához a következőket kell tennie:

  1. Indítsa el az NTSD-t vagy a CDB-t a célszámítógépen a -ddefer és -server parancssori beállításokkal, megadva a kívánt átviteli beállításokat. A -server beállításnak a parancssor első paraméterének kell lennie.

    Egy futó folyamathoz például az alábbi szintaxist használhatja.

    ntsd -server ServerTransport -ddefer [-y UserSymbolPath] -p PID 
    

    Új folyamatot is elindíthat célként az alábbi szintaxissal.

    ntsd -server ServerTransport -ddefer [-y UserSymbolPath] ApplicationName 
    

    Ha ezt postmortem hibakeresőként telepíti, az alábbi szintaxist használhatja. Vegye figyelembe, hogy manuálisan kell szerkesztenie a beállításjegyzéket a -server paramétert tartalmazó postmortem hibakereső telepítéséhez; további információt a Postmortem hibakeresésének engedélyezésecímű témakörben talál.

    ntsd -server ServerTransport -ddefer [-y UserSymbolPath] 
    

    Az elérhető átviteli lehetőségekről további információt Hibakeresési kiszolgáló aktiválásacímű témakörben talál.

  2. Indítsa el a WinDbg-t vagy a KD-t a gazdaszámítógépen, mintha hibakeresést végezne a célszámítógépen, de valójában ne törjön be a célszámítógépre. A WinDbg használatához használja az alábbi szintaxist.

    windbg [-y KernelSymbolPath] [-k ConnectionOptions] 
    

    További információ erről a lépésről: Live Kernel-Mode Hibakeresés WinDbg használatával (klasszikus)

    .

  3. Indítsa el a WinDbg-t vagy a CDB-t hibakeresési ügyfélként ugyanazokkal az átviteli lehetőségekkel, mint a kiszolgáló indításához. Ez a hibakeresési ügyfél a gazdaszámítógépen vagy egy harmadik számítógépen is futtatható.

    cdb -remote ClientTransport 
    

    További információ erről a lépésről: Hibakeresési ügyfélaktiválása.

  4. Miután a hibakeresők futnak, és megjelenik a Input> kérés a kernel-hibakeresőben, használja a .sleep (Pause Debugger) parancsot a hibakeresők szüneteltetéséhez, és hagyja, hogy a célszámítógép néhány másodpercig fusson. Ez időt ad a célszámítógépnek a távoli átviteli protokoll feldolgozásához, a felhasználói módú távoli kiszolgáló és a távoli ügyfél közötti kapcsolat létrehozásához.

Ha a CDB-t felhasználói módú hibakeresőként használja, a CDB-hez társított parancssori ablak zárolva marad, és nem érhető el, amíg a hibakeresés folytatódik. Ha NTSD-t használ, nem jön létre további ablak, annak ellenére, hogy az NTSD-hez egy folyamatazonosító van társítva a célszámítógépen.

E kombinációs forgatókönyvben a négy mód és az azok közötti váltás módszerei a Átkapcsolási módok témában leírtak szerint érvényesek, a következő különbségekkel:

  • Két különböző felhasználói módú hibakeresési mód létezik. A célszámítógép futtatásakor a hibakeresési kiszolgálót a hibakeresési ügyfél vezérli, mint bármely más távoli hibakeresési munkamenetben; ezt távoli vezérlésű felhasználói módú hibakeresésnek nevezzük. Amikor a kernel módú hibakereső csatlakozik a célszámítógéphez, és megjelenik a Input> parancssor, a felhasználói módú hibakeresőt a rendszermag-hibakereső vezérli, ezt kernel által vezérelt felhasználói módú hibakeresésnek nevezzük.

  • Ez a két mód soha nem érhető el egyszerre. Ha a kernel hibakeresője be van törve a célszámítógépre, annak ellenére, hogy a felhasználói módú hibakereső aktív lehet, a célszámítógép nem tudja feldolgozni a távoli átviteli protokollt, ezért a felhasználói módú hibakereső nem fog tudni távoli bemenetet fogadni ezen a kapcsolaton keresztül.

  • Ha a felhasználói mód szimbólumai szimbólumkiszolgálón találhatók, a szimbólumhozzáférést igénylő hibakereső parancsokat távoli vezérlésű felhasználói módban hibakeresési módban kell kiadni.

  • Ha a kernel által vezérelt felhasználói módú hibakeresésről távoli vezérlésű felhasználói módú hibakeresésre szeretne váltani, használja a .sleep (Pause Debugger) parancsot. Amikor a felhasználói mód hibakeresője felébred az alvási parancsból, távoli vezérlésű, felhasználói módú hibakeresési módban lesz.

  • Ha távoli vezérlésű felhasználói módú hibakeresésről kernel módú hibakeresésre szeretne váltani, írjon be egy parancsot a Input> parancssorból. Ha ez a kérés nem látható, váltson kernel módú hibakeresésre, majd használja a parancssorban található kd> parancsot.

A -ddefer indított felhasználói módú hibakereső belsőleg elsődleges prioritást biztosít a hibakeresési ügyfél bemenetének, a második prioritást pedig a kernel-hibakereső bemenetének. Az egyidejű bemenetek között azonban soha nem lehet ütközés, mert ha a kernel-hibakereső be van törve a célszámítógépre, a távoli kapcsolat nem érhető el.