Szimbólum elérési útja Windows-hibakeresőkhöz

A szimbólum elérési útja meghatározza azokat a helyeket, ahol a Windows hibakeresői, például a WinDbg, a KD, a CDB és az NTST szimbólumfájlokat keresnek.

Rövid útmutató:.symfix A parancs használatával beállíthat egy alapértelmezett elérési utat a Microsoft nyilvános szimbólumkiszolgálójára – ez a legtöbb hibakeresési forgatókönyvben jól működik.

Konfigurálja helyesen a szimbólum elérési útját a hatékony hibakeresés engedélyezéséhez– a hibakeresők ezután automatikusan megkereshetik és betölthetik a kódvégrehajtás elemzéséhez szükséges szimbólumfájlokat. Ez az útmutató bemutatja, hogyan állíthat be szimbólumútvonalakat, hogyan használhatja a Microsoft szimbólumkiszolgálóját, hogyan gyorsítótárazhatja helyileg a szimbólumokat, és elháríthatja a gyakori problémákat. A szimbólumokkal és szimbólumfájlokkal kapcsolatos további információkért lásd: Szimbólumok.

Egyes fordítók, például a Microsoft Visual Studio, a bináris fájlokkal megegyező könyvtárba helyezik a szimbólumfájlokat. A szimbólumfájlok és az ellenőrzött bináris fájlok elérési utat és fájlnévadatokat tartalmaznak, így a hibakereső automatikusan megtalálja a szimbólumfájlokat. Ha felhasználói módú folyamatot keres azon a számítógépen, amelyen a végrehajtható fájlt elkészítette, és ha a szimbólumfájlok az eredeti helyen találhatók, a hibakereső a szimbólum elérési útjának beállítása nélkül is megkeresheti a szimbólumfájlokat.

A legtöbb más helyzetben meg kell adnia a szimbólum elérési útját, hogy a szimbólumfájl helyeire mutasson.

Borravaló

A .symfix használatával beállíthatja a nyilvános Microsoft nyilvános szimbólumkiszolgáló alapértelmezett elérési útját, amely sok esetben jól működik.

Szimbólum elérési útja szintaxisa

A hibakereső jelútvonala egy karakterlánc, amely több könyvtárútvonalat tartalmaz, pontosvesszővel elválasztva. Például C:\Dir1;C:\Dir2\DirA;C:\Dir2\DirB.

A relatív elérési utak támogatottak. Azonban minden elérési út előtt hozzá kell adnia egy meghajtóbetűjelet vagy egy hálózati megosztást, kivéve, ha mindig ugyanabból a könyvtárból indítja el a hibakeresőt. A hálózati megosztások is támogatottak.

Minden olyan könyvtárban, amely a szimbólum elérési útvonalához tartozik, a hibakereső három almappában keres. Ha például a szimbólum elérési útja tartalmazza C:\Dir1 , és a hibakereső egy DLL szimbóluminformációit keresi, a hibakereső ebben a sorrendben keres:

  1. C:\Dir1\symbols\dll
  2. C:\Dir1\dll
  3. C:\Dir1

A hibakereső megismétli ezt a folyamatot a szimbólum elérési útjának minden könyvtárában.

Végső tartalék helyszínek:

  • Aktuális könyvtár
  • Aktuális könyvtár ..\dll, ..\exe, vagy ..\sys hozzáfűzve (a hibakeresés alatt álló bináris típustól függően)

A szimbólumfájlok dátum- és időbélyegekkel rendelkeznek. A hibakereső mindig azokat a szimbólumokat keresi, amelyek megfelelnek a hibakereséshez használt bináris fájlok időbélyegének. Nem kell aggódnia amiatt, hogy a hibakereső helytelen szimbólumokat használ, amelyeket ebben a sorozatban először talál. Ha további információra van szükség a szimbólumfájlok nem elérhető válaszairól, olvassa el az Egyező szimbólumnevek című témakört.

A szimbólum elérési útjának beállításának egyik módja a .sympath parancsbeírása. A szimbólum elérési útjának beállításának egyéb módjait a jelen témakör későbbi, szimbólumútvonalának szabályozása című témakörben talál.

A szimbólum elérési útjának szabályozása

A szimbólum elérési útjának szabályozásához válasszon az alábbi módszerek közül:

  • A .symfix set symbol store path parancs használatával állítsa be a nyilvános Microsoft szimbólumkiszolgáló alapértelmezett elérési útját, amely sok esetben jól működik. Helyi gyorsítótár beállításához írja be a következőt .symfix C:\MyCache: .

  • A .sympath paranccsal megjelenítheti, beállíthatja, módosíthatja vagy hozzáadhatja az elérési utat.

  • A hibakereső elindítása előtt használja a _NT_SYMBOL_PATH és _NT_ALT_SYMBOL_PATHkörnyezeti változókat az elérési út beállításához. A szimbólum elérési útja _NT_SYMBOL_PATHután _NT_ALT_SYMBOL_PATH hozzáfűzésével jön létre. Az elérési utat általában a _NT_SYMBOL_PATH segítségével állítod be. Előfordulhat azonban, hogy a _NT_ALT_SYMBOL_PATH használatával felül szeretné bírálni ezeket a beállításokat speciális esetekben, például ha megosztott szimbólumfájlok privát verzióival rendelkezik. Ha érvénytelen könyvtárat próbál hozzáadni ezen környezeti változókon keresztül, a hibakereső figyelmen kívül hagyja ezt a könyvtárat.

  • A hibakereső indításakor használja az -y parancssori opciót az elérési út beállításához.

  • Csak WinDbg-ben használja a fájlt | Szimbólumfájl elérési útja parancs vagy nyomja le CTRL+S az elérési út megjelenítéséhez, beállításához, módosításához vagy hozzáadásához.

Ha a -sins parancssorilehetőséget használja, a hibakereső figyelmen kívül hagyja a szimbólum elérési útjának környezeti változóját.

Szimbólumok gyorsítótárazása helyileg

Javasoljuk, hogy a szimbólumok gyorsítótárazását végezze el helyileg a hibakereső teljesítményének javítása és a hálózati forgalom csökkentése érdekében. A szimbólumok gyorsítótárazásához helyezze bele a cache*; vagy cache*localsymbolcache; a szimbólum elérési útjába.

Ha belefoglalja a sztringet cache*; a szimbólum elérési útjába, a hibakereső az alapértelmezett szimbólumgyorsítótár könyvtárban tárolja a helyi számítógépen azokat a szimbólumokat, amelyeket a sztringtől jobbra megjelenő elemtől tölt be. A következő parancs például arra utasítja a hibakeresőt, hogy szerezze be a szimbólumokat a \\someshare nevű hálózati megosztásból, és gyorsítótárazza a szimbólumokat a helyi számítógép alapértelmezett helyén.

.sympath cache*;\\someshare

Ha a karakterláncot cache*localsymbolcache; belefoglalja a szimbólum elérési útjába, a hibakereső a helyiszimbolumcache könyvtárban tárolja azokat a szimbólumokat, amelyeket a karakterlánctól jobbra található elemekből tölt be.

Az alábbi parancs például arra utasítja a hibakeresőt, hogy szerezze be a szimbólumokat a hálózati megosztásról \\someshare, és a szimbólumokat a c:\MySymbols könyvtárban gyorsítótárazza.

.sympath cache*C:\MySymbols;\\someshare

Szimbólumkiszolgáló használata: srv*

Ha csatlakozik az internethez vagy egy vállalati hálózathoz, a szimbólumok elérésének leghatékonyabb módja egy szimbólumkiszolgáló használata, például a nyilvános Microsoft nyilvános szimbólumkiszolgáló. Az egyik alábbi karaktersorozat használatával tudja használni a szimbólumszervert a szimbólumútvonalban.

  • A srv* karakterlánc

    Ha a sztring srv* szerepel a szimbólumútvonalban, a hibakereső egy szimbólumkiszolgáló használatával az alapértelmezett szimbólumtárolóból kéri le a szimbólumokat. Az alábbi parancs például arra utasítja a hibakeresőt, hogy szerezze be a szimbólumokat az alapértelmezett szimbólumtárolóból. Ezek a szimbólumok nincsenek gyorsítótárazva a helyi számítógépen.

    .sympath srv*
    
  • A srv*symbolstore karakterlánc

    Ha a srv*symbolstore karakterlánc szerepel a szimbólum elérési útjában, a hibakereső egy szimbólumkiszolgáló segítségével szerzi be a szimbólumokat a szimbólumtárból. Az alábbi parancs például arra utasítja a hibakeresőt, hogy a microsoftos szimbólumkiszolgáló tárolóból szerezze be a szimbólumokat. Ezek a szimbólumok nincsenek gyorsítótárazva a helyi számítógépen.

    .sympath srv*https://msdl.microsoft.com/download/symbols
    
  • A srv*localsymbolcache*symbolstore karakterlánc

    Ha a karakterlánc srv*localcache*symbolstore szerepel a szimbólum elérési útján, a hibakereső egy szimbólumkiszolgáló használatával kéri le a szimbólumokat a szimbólumtárból, majd gyorsítótárazza őket a helyi gyorsítótár könyvtárban. Az alábbi parancs például arra utasítja a hibakeresőt, hogy szerezze be a szimbólumokat a Microsoft szimbólumkiszolgálóról –https://msdl.microsoft.com/download/symbols és gyorsítótárazza a szimbólumokat a c:\MyServerSymbols.

    .sympath srv*C:\MyServerSymbols*https://msdl.microsoft.com/download/symbols
    

Ha van egy könyvtára a számítógépen, ahol manuálisan helyez el szimbólumokat, ne használja ezt a könyvtárat a szimbólumkiszolgálóról beszerzett szimbólumok gyorsítótáraként. Ehelyett használjon két külön könyvtárat. Például manuálisan helyezhet el szimbólumokat a c:\MyRegularSymbols, majd a kiszolgálóról beszerzett szimbólumok gyorsítótáraként kijelölheti c:\MyServerSymbols. Az alábbi példa bemutatja, hogyan adhatja meg mindkét könyvtárat a szimbólum elérési útvonalán.

.sympath C:\MyRegularSymbols;srv*C:\MyServerSymbols*https://msdl.microsoft.com/download/symbols

További információ a szimbólumkiszolgálókról és szimbólumtárolókról: Egyéni szimbólumtárolók és szimbólumkiszolgálók.

Gyorsítótár* és srv* egyesítése

Ha belefoglalja a sztringet cache*; a szimbólum elérési útjába, a hibakereső az alapértelmezett szimbólumgyorsítótár könyvtárban tárolja a helyi számítógépen azokat a szimbólumokat, amelyeket a sztringtől jobbra megjelenő elemtől tölt be. Az alábbi parancs például arra utasítja a hibakeresőt, hogy szerezze be a szimbólumokat az Microsoft szimbólumkiszolgálóról, tárolja és gyorsítótárazza őket az alapértelmezett szimbólumgyorsítótár könyvtárában.

.sympath cache*;srv*https://msdl.microsoft.com/download/symbols

Ha a karakterláncot cache*localsymbolcache; belefoglalja a szimbólum elérési útjába, a hibakereső a helyiszimbolumcache könyvtárban tárolja azokat a szimbólumokat, amelyeket a karakterlánctól jobbra található elemekből tölt be.

A következő parancs például arra utasítja a hibakeresőt, hogy kérje le a szimbólumokat a Microsoft szimbólumkiszolgálóról, tárolja és gyorsítótárazza a szimbólumokat a c:\MySymbols könyvtárban.

.sympath cache*C:\MySymbols;srv*https://msdl.microsoft.com/download/symbols

Az AgeStore használata a gyorsítótár méretének csökkentéséhez

Az AgeStore eszközzel törölheti a megadott dátumnál régebbi gyorsítótáras fájlokat, vagy elég régi fájlt törölhet, hogy az eredményként kapott gyorsítótár mérete kisebb legyen egy megadott mennyiségnél. A gyorsítótárfájlok törlése akkor hasznos, ha az alsóbb rétegbeli tároló túl nagy lesz.

A szimbólumok késleltetett betöltése

A hibakereső alapértelmezés szerint késleltetett szimbólum-betöltést alkalmaz. Az ilyen típusú betöltés azt jelenti, hogy a hibakereső csak akkor tölt be szimbólumokat, ha szüksége van rájuk.

Ha például a .sympath paranccsal módosítja a szimbólum elérési útját, a hibakereső késleltetve újratölti az összes betöltött modult exportált szimbólumokkal.

A hibakereső lazán újra betölti a modulok szimbólumait teljes PDB-szimbólumokkal , ha az új elérési út már nem tartalmazza a PDB-szimbólumok betöltéséhez használt eredeti elérési utat. Ha az új elérési út továbbra is tartalmazza a PDB-szimbólumfájl eredeti elérési útját, a hibakereső nem tölti be lazán újra ezeket a szimbólumokat.

Kikapcsolhatja a lusta szimbólumok betöltését a CDB-ben és a KD-ben a parancssori. A szimbólumok betöltését az ld betöltési szimbólumok paranccsal vagy a .reload modul parancs a /f beállítással is kényszerítheti.

Azure DevOps Services-összetevők

Az Azure DevOps ServicesAzure Artifacts szolgáltatással szimbólumkiszolgáló érhető el. Az Azure Artifacts winDbg-ben való használatával kapcsolatos további információkért lásd: Szimbólumok hibakeresése a WinDbg (Azure Artifacts). Az Azure által létrehozott szimbólumokkal kapcsolatos általános információkért tekintse meg szimbólumok áttekintését (Azure Artifacts).

Hibaelhárítás

A !sym zajos vagy a -nWinDbg Command-Line opció használatával további részleteket megjeleníthet a szimbólumok betöltésekor. További hibaelhárítási stratégiák: Szimbólumok ellenőrzése.

Következő lépések

Most, hogy konfigurálta a szimbólum elérési útját, megtudhatja, hogyan ellenőrizheti, hogy a szimbólumok megfelelően töltődnek-e be, és hogyan háríthatja el a gyakori problémákat:

Kapcsolódó feladatok:

Parancshivatkozás: