Megosztás:


15. példa: Objektumhivatkozás-nyomkövetés használata

Az objektumhivatkozás-nyomkövetés egy Windows-funkció, amely szekvenciális veremkövetést hajt végre, amikor egy objektumra hivatkoznak vagy dereferálnak. Úgy tervezték, hogy észlelje az objektumkezelés hibáit, amelyek összeomlásokhoz vagy memóriavesztéshez vezethetnek. Ezen hibák némelyike nehezen észlelhető, mert nem jelennek meg következetesen. Részletes információkért lásd objektumhivatkozás-nyomkövetési.

Az objektumhivatkozások nyomon követését a Globális jelzők párbeszédpanelen vagy egy parancssorban konfigurálhatja. Az alábbi példák a parancssort használják. További információkért az Objektumhivatkozás-nyomkövetés konfigurálásával kapcsolatban az Globális jelzők párbeszédpanel használatával lásd a Az objektumhivatkozások nyomkövetésének konfigurálásacímű témakört.

A Gflags használatával engedélyezheti, letilthatja és konfigurálhatja az objektumhivatkozás-nyomkövetést. A folyamat a következő:

  • Gflags használatával engedélyezheti az objektumhivatkozás-nyomkövetési a beállításjegyzékben, vagy kerneljelölőként (futási idő) beállításként. Ha hozzáadja a beállítást a beállításjegyzékhez, újra kell indítania a számítógépet a nyomkövetés megkezdéséhez. Ha engedélyezi a beállítások futásidejű verzióját, a nyomkövetés azonnal elindul, de a nyomkövetési beállítások visszaállnak a beállításkulcsban lévőkre, amikor leállítja vagy újraindítja a számítógépet.

  • Indítsa el a gyanús objektumot létrehozó folyamatot. A nyomkövetés csak a folyamatok által létrehozott objektumokat tartalmazza, amelyek a nyomkövetés megkezdése után kezdődnek. Ha a folyamat az újraindítás során vagy rövid időn belül elindul, adja hozzá a nyomkövetési beállításokat a beállításjegyzékhez, majd indítsa újra a rendszert.

  • A nyomkövetés megtekintéséhez használja a!obtracehibakereső bővítményt. Alapértelmezés szerint a nyomkövetés az objektum megsemmisüléséig megmarad, de a /p paraméter használatával mindaddig fenntarthatja a nyomkövetést, amíg le nem tiltja a nyomkövetést.

  • Gflags használatával tiltsa le az objektumhivatkozás-nyomkövetési.a beállításjegyzékben vagy kerneljelölőként (futási idő) beállításként. Ha törli a beállítást a beállításjegyzékből, újra kell indítania a számítógépet a nyomkövetés befejezéséhez. Ha letiltja a beállítások futásidejű verzióját, a nyomkövetés azonnal befejeződik, de a nyomkövetési beállítások visszaállnak a beállításjegyzékben lévőkre, amikor leállítja vagy újraindítja a számítógépet.

Ezek a példák bemutatják, hogyan használható gflags az objektumhivatkozások nyomkövetésének engedélyezésére és letiltására. \

Futásidejű nyomkövetés engedélyezése

Az alábbi parancs engedélyezi az objektumhivatkozások nyomkövetését a parancssorban. A parancs a /ko paraméterrel engedélyezi az objektumhivatkozás-nyomkövetést, mint egy kerneljelölőt futási időben. A parancs a /t paraméterrel adja meg a pool címkéket: Tag1 és Fred. Ennek eredményeképpen az Tag1 vagy Fred által létrehozott összes objektum nyomon lesz követve.

gflags /ko /t Tag1;Fred

Mivel a parancs módosítja a kerneljelző (futásidejű) beállításait, az objektumhivatkozások nyomkövetése azonnal elindul. A nyomkövetés tartalmazni fogja az összes olyan objektumot, amelyek a Tag1 vagy Fred készletcímkékkel vannak ellátva, és amelyeket a parancs elküldése után kezdődő folyamatok hoznak létre.

A Gflags a következő üzenet nyomtatásával válaszol:

Running Kernel Settings :
Object Ref Tracing Enabled
        Temporary Traces
        Pool Tags: Tag1;Fred
        Process Name: All Processes

Ez az üzenet azt jelzi, hogy az objektumhivatkozás-nyomkövetés engedélyezve van. Az "ideiglenes nyomkövetések" azt jelzik, hogy a nyomkövetés összes rekordja törlődik az objektum megsemmisítésekor. Ha a nyomkövetést "állandóvá" szeretné tenni, használja a /p paramétert, amely arra utasítja a Windowst, hogy őrizze meg a nyomkövetési adatokat, amíg le nem tiltja az objektumhivatkozás-nyomkövetést, vagy a számítógép leáll vagy újra nem indul.

Nyomkövetés engedélyezése a beállításjegyzékben

Az alábbi parancs hozzáad egy objektumhivatkozás-nyomkövetési konfigurációt a beállításjegyzékhez. A konfigurált nyomkövetés a számítógép újraindításakor kezdődik.

A parancs a /ro paraméterrel engedélyezi az objektumhivatkozás-nyomkövetést beállításjegyzék-beállításként. A parancs a /i parancsot használja a notepad.exe folyamat megadására, valamint a /t paramétert a készletcímkék, mint például Tag1 és Fred, megadására. Ennek eredményeképpen a Jegyzettömb folyamat által a Tag1 vagy Fred készletcímkével létrehozott összes objektum nyomon követésre kerül. A parancs a /p paramétert is használja, amely mindaddig megőrzi a nyomkövetési adatokat, amíg le nem tiltja a nyomkövetést.

gflags /ro /t Tag1;Fred /i Notepad.exe /p

A parancs elküldésekor a Gflags tárolja az adatokat a beállításjegyzékben. Mivel azonban a beállításjegyzék beállításai csak a számítógép újraindítása után lépnek érvénybe, ez az objektumhivatkozás-nyomkövetés konfigurálva van, de még nincs elindítva.

A Gflags a következő üzenet nyomtatásával válaszol:

Boot Registry Settings :
Object Ref Tracing Enabled
        Permanent Traces
        Pool Tags: Tag1;Fred
        Process Name: Notepad.exe

Az üzenet azt jelzi, hogy az objektumhivatkozás-nyomkövetés engedélyezve van a beállításjegyzékben. Az "állandó nyomkövetések" azt jelzik, hogy a nyomkövetési adatok a számítógép leállításáig vagy újraindításáig megmaradnak. Az üzenet felsorolja a követett pool címkéket és képfájlneveket is.

Objektumhivatkozás nyomkövetési konfigurációjának megjelenítése

Megjelenítheti a jelenleg érvényes vagy a számítógép újraindításakor használni kívánt beállításjegyzékben tárolt objektumhivatkozás-nyomkövetési konfigurációt.

Ebben a példában egy objektumhivatkozás-nyomkövetési konfiguráció van tárolva a beállításjegyzékben, egy másik pedig a futási időre van konfigurálva. A futtatási idő nyomkövetése azonnal megkezdődik (és felülbírálja a beállításjegyzék beállításait). Ha azonban újraindítja a rendszert, a futásidejű beállítások elvesznek, és az objektumhivatkozás-nyomkövetési munkamenet beállításjegyzék-beállításai lépnek életbe.

Az alábbi parancs megjeleníti a futtatási idő objektumhivatkozás-nyomkövetési konfigurációját. A /ko paramétert használja más paraméterek nélkül.

gflags /ko
Running Kernel Settings :
Object Ref Tracing Enabled
        Temporary Traces
        Pool Tags: Tag1;Fred
        Process Name: All Processes

Ha az objektumhivatkozások nyomkövetése engedélyezve van, ahogy ebben a példában is látható, a megjelenített beállítások egy folyamatban lévő nyomkövetést írnak le.

Az alábbi parancs megjeleníti a beállításjegyzékben tárolt objektumhivatkozás-nyomkövetés konfigurációs adatait. A /ro paramétert használja más paraméterek nélkül.

gflags /ro

Válaszul a Gflags megjeleníti a beállításjegyzékben tárolt adatokat:

Boot Registry Settings :
Object Ref Tracing Enabled
        Permanent Traces
        Pool Tags: Tag1;Fred
        Process Name: Notepad.exe

Ha újraindította a számítógépet, mióta hozzáadta az objektumhivatkozás-nyomkövetés konfigurációját a beállításjegyzékhez, a gflags /ro parancsra válaszul megjelenő beállítások ismertetik a folyamatban lévő nyomkövetést. Ha azonban még nem indult újra, vagy újraindult, de elindított egy futásidejű objektumhivatkozási nyomkövetést (/ko), a beállításjegyzékben tárolt beállítások jelenleg nem érvénybe lépnek, de a rendszer újraindításakor újra érvénybe lépnek.

Objektumhivatkozások nyomkövetésének letiltása

Ha letiltja a futásidejű (kerneljelző) objektumhivatkozás nyomkövetési beállításait, a nyomkövetés azonnal leáll. Amikor letiltja az objektumhivatkozás-nyomkövetés beállításait a beállításjegyzékben, a nyomkövetés leáll a számítógép újraindításakor.

Az alábbi parancs letiltja a futásidejű objektumhivatkozás-nyomkövetést. A /d paramétert használja az összes beállítás letiltásához. A beállítások nem tilthatók le szelektíven.

gflags /ko -d

Ha a parancs sikeres, a Gflags a következő üzenettel válaszol:

Running Kernel Settings :
Object Ref Tracing Disabled

Az alábbi parancs letiltja a futásidejű objektumhivatkozás-nyomkövetést.

Az alábbi parancs letiltja az objektumhivatkozás nyomkövetési beállításait a beállításjegyzékben. A /d paramétert használja az összes beállítás letiltásához. A beállítások nem tilthatók le szelektíven. Ez a parancs a számítógép újraindításakor érvényes.

gflags /ro -d

Ha a parancs sikeres, a Gflags a következő üzenettel válaszol:

Boot Registry Settings :
Object Ref Tracing Disabled