Megosztás:


Objektumhivatkozás nyomon követése

Az Objektumhivatkozás nyomon követése funkció minden alkalommal rögzíti a szekvenciális veremnyomokat, amikor egy objektumhivatkozás-számláló növekszik vagy csökken. A nyomok segíthetnek az objektumok hivatkozási hibáinak észlelésében, beleértve a dupla dereferálást, a hivatkozási hibát és az objektumok dereferálásának sikertelenségét. Ez a funkció csak a Windows Vista és a Windows újabb verzióiban támogatott.

A Globális jelzők párbeszédpanel objektumhivatkozás-nyomkövetési funkciójának konfigurálásáról további információt az Objektumhivatkozás-nyomkövetés konfigurálása című témakörben talál. Az objektumhivatkozás-nyomkövetési funkció parancssori konfigurálásáról további információt a GFlags-parancsok című témakörben talál. Példa: 15. példa: Objektumhivatkozás-nyomkövetés használata.

Az objektumhivatkozások nyomkövetése leghasznosabb lehet, ha azt gyanítja, hogy egy adott objektumra nincs megfelelően hivatkozva vagy megszüntetve, általában azért, mert a pool fokozott kihasználtsága azt jelzi, hogy egy objektum szivárog, vagy egy folyamat vagy munkamenet nem fejezhető be, annak ellenére, hogy a leírók száma nulla. A naplókban későbbi felülvizsgálathoz rögzített nyomkövetésekkel ellentétben az objektumhivatkozási nyomkövetések úgy vannak tervezve, hogy valós időben használhatók legyenek, miközben a folyamat fut, és az objektumra hivatkoznak, illetve megszüntetik a hivatkozást. A hibakeresőben az objektumhivatkozás-nyomkövetést a !obtrace hibakereső bővítmény használatával tekintheti meg. Mivel ehhez a bővítményhez egy megadott objektumcímre van szükség, előre tudnia kell, hogy melyik objektum a hiba valószínű forrása.

Az objektumhivatkozás-nyomkövetésre a következő szabályok vonatkoznak:

  • Egyszerre csak egy objektumhivatkozási nyomkövetést futtathat.

  • Mivel a kernelszintű nyomkövetés nem praktikus, a nyomkövetést a megadott készletcímkékkel létrehozott objektumokra vagy egy adott folyamat által létrehozott objektumokra (képfájlnévvel jelölve) kell korlátoznia, vagy mindkettőre.

  • Minden nyomkövetéshez csak egy képfájl adható meg. Ha képfájlt ad meg, a nyomkövetés a kép által képviselt folyamatok által létrehozott objektumokra korlátozódik. A folyamat által hivatkozott, de egy másik folyamat által létrehozott objektumok nem lesznek nyomon követve.

  • Az egyes nyomkövetésekhez legfeljebb 16 készletcímkét adhat meg. A megadott készletcímkék bármelyikével rendelkező objektumok nyomon lesznek követve.

  • Ha képfájlt és egy vagy több készletcímkét is megad, a nyomkövetés csak a folyamat által létrehozott és a megadott készletcímkéket tartalmazó objektumokra korlátozódik.

  • Az objektumhivatkozás-nyomkövetés nem tudja nyomon követni a nyomkövetés indításakor már futó folyamatokat. A nyomkövetés csak a nyomkövetés kezdete után kezdődő folyamatok objektumait tartalmazza.

  • A nyomkövetésre megjelölt objektumok mindaddig nyomon követhetők, amíg el nem pusztítják az objektumot, vagy le nem tiltják a nyomkövetést. Alapértelmezés szerint egy objektum nyomkövetései csak addig maradnak fenn, amíg el nem pusztítják az objektumot, de megadhat egy "állandó" nyomkövetést (/p), ahol a nyomkövetés mindaddig megmarad, amíg le nem tiltja a nyomkövetést.

  • Az objektumhivatkozás-nyomkövetési konfigurációt tárolhatja rendszerleíró adatbázis-beállításként vagy futásidejű kerneljelzőként. Ha a beállításjegyzék és a kernel jelölő beállításai is meg vannak adva, a futásidejű beállítások élveznek elsőbbséget, de a számítógép leállításakor vagy újraindításakor elvesznek.