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 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:
C:\Dir1\symbols\dllC:\Dir1\dllC:\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..\syshozzá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,
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_PATHhozzáfűzésével jön létre. Az elérési utat általában a_NT_SYMBOL_PATHsegítségével állítod be. Előfordulhat azonban, hogy a_NT_ALT_SYMBOL_PATHhaszná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+Saz 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áncHa 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*symbolstorekarakterláncHa a
srv*symbolstorekarakterlá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/symbolsA
srv*localsymbolcache*symbolstorekarakterláncHa a karakterlánc
srv*localcache*symbolstoreszerepel 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 ac:\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 Services
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: