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


A SymSrv használata

A SymSrv a központi szimbólumtárolókból szállít szimbólumfájlokat. Ezek az üzletek tetszőleges számú szimbólumfájlt tartalmazhatnak, amelyek tetszőleges számú programnak vagy operációs rendszernek felelnek meg. Az tárolók bináris fájlokat is tartalmazhatnak, amelyek különösen hasznosak a minidump fájlok hibakereséséhez.

Az áruházak tartalmazhatják a tényleges szimbólumokat és bináris fájlokat, vagy egyszerűen csak a szimbólumfájlokra mutató mutatókat. Ha az áruház mutatókat tartalmaz, a SymSrv közvetlenül a forrásból kéri le a tényleges fájlokat.

A SymSrv egy nagy szimbólumtárolót is elválaszthat egy kisebb részhalmazra, amely egy speciális hibakeresési feladathoz megfelelő.

Végül a SymSrv http- vagy HTTPS-forrásból szerezhet be szimbólumfájlokat az operációs rendszer bejelentkezési adatainak használatával. A SymSrv támogatja az intelligens kártyák, tanúsítványok, valamint a rendszeres bejelentkezések és jelszavak által védett HTTPS-webhelyeket.

A szimbólum elérési útjának beállítása

Az szimbólumútvonalakleírtak szerint a szimbólum elérési útja (_NT_SYMBOL_PATH környezeti változó) több, pontosvesszővel elválasztott elérési útelemből áll. Ha az elérési út egy vagy több eleme az "srv*" szöveggel kezdődik, akkor az elem egy szimbólumkiszolgáló, és a SymSrv használatával keresi meg a szimbólumfájlokat.

Jegyzet

Ha az "srv*" szöveg nincs megadva, de a tényleges elérési útelem egy szimbólumkiszolgáló-tároló, akkor a szimbólumkezelő úgy fog működni, mintha "srv*" lett volna megadva. A szimbólumkezelő úgy állapítja meg ezt, hogy megkeresi a fájlt, amely "pingme.txt" néven található a megadott elérési út gyökérkönyvtárában.

 

Ahogyan a szimbólum elérési útjai pontosvesszővel elválasztott szimbólumútvonalakból állnak, a szimbólumkiszolgálók csillagokkal elválasztott szimbólumtároló elemekből állnak. A "srv*" előtag után legfeljebb 10 szimbólumtároló lehet. A lista bal oldalán felsorolt üzleteket alsóbb rétegbeli áruházaknak, a jobb oldalon lévő áruházakat pedig felsőbb rétegbeli üzleteknek nevezzük.

srv\**SymbolStore* srv\**SymbolStore1*\**SymbolStoreN*

Ha az elérési út csak egy szimbólumtároló elemet tartalmaz, akkor a SymSrv közvetlenül az adott tárolóból próbálja meg használni a kért fájlokat.

Ha az elérési úton két szimbólumtároló található, a SymSrv a bal szélső szimbólumtárolóban keresi a szimbólumfájlt. Ha a fájl ott van, azt használja a rendszer. Ha nincs ott, a SymSrv azonnal jobbra néz a szimbólumtárolóban. Ha a fájl ott van, a rendszer a bal oldali tárolóba másolja, és onnan nyitja meg.

Ha több mint két üzlet van, ez a viselkedés jobbra folytatódik, amíg a fájlt meg nem találják, vagy már nincs több üzlet a listában.

A fájl soha nem nyílik meg egyetlen tárolóból sem, csak a bal szélső tárolóból. Ha a fájl bárhol máshol található a láncban, a rendszert minden tárolóba másolja, amelyek a fájltól balra vannak. Ezt a másolási folyamatot "kaszkádolásnak" nevezik, és bizonyos előnyöket biztosít, amelyek a dokumentum későbbi részében lesznek tisztázva.

Szimbólumtárolók típusai

Az alábbi táblázat példákat jelenít meg a támogatott szimbólumtároló-típusokra.

Szimbólumtároló típusa Leírás
\\server\share Egy távoli kiszolgálón található megosztás teljes UNC elérési útja.
c:\LocalCache Egy könyvtár elérési útja az ügyfélszámítógépen.
https://InternetSite A szimbólumokat üzemeltető webhely URL-címe. A lista jobb szélső tárolójának kell lennie, és nem lehet az egyetlen tároló a listában.
https://SecureInternetSite A szimbólumokat üzemeltető biztonságos webhely URL-címe. Ez támogatja a jelszavakat, a Windows bejelentkezési hitelesítő adatait, a tanúsítványokat és az intelligens kártyákat. A lista jobb szélső tárolójának kell lennie, és nem lehet az egyetlen tároló a listában.
<üres> Ha két csillag között nincs szöveg, akkor ez a alapértelmezett alsóbb rétegbeli tárolójelzi. A hely beállítása SymSetHomeDirectorymeghívásával történik. Az alapértelmezett érték egy "sym" nevű könyvtár, közvetlenül a hívó alkalmazás programkönyvtára alatt. Ez néha az alapértelmezett helyi gyorsítótárként ismert .

 

Mivel egy HTTP-alapú szimbólumtárolóba nem lehet írni, a listában jobb szélső tárolónak kell lennie. Ha egy HTTP-alapú szimbólumtároló található az áruházlista közepén vagy bal oldalán, akkor nem lehet másolni a talált fájlokat, és a lánc megszakadna. Továbbá, mivel a szimbólumkezelő nem tud megnyitni egy fájlt egy webhelyről, a HTTP-alapú tároló nem lehet a bal szélső vagy csak a lista tárolója. Ha a SymSrv valaha is megjelenik ezzel a szimbólum elérési úttal, a rendszer megpróbálja helyreállítani a fájlt az alapértelmezett alsóbb rétegbeli tárolóba másolva, és onnan nyitja meg, függetlenül attól, hogy az alapértelmezett alsóbb rétegbeli tároló szerepel-e a szimbólum elérési útján.

Példák

Ha a SymSrv-et a \\mybuilds\mysymbols szimbólumtárolóval szeretné használni, állítsa be a következő szimbólum elérési útját:

_NT_SYMBOL_PATH= srv*\\mybuilds\mysymbols

Ha úgy szeretné beállítani a szimbólum elérési útját, hogy a hibakereső a \\mybuilds\mysymbols szimbólumtárolóból másolja a szimbólumfájlokat a c:\localsymbols helyi könyvtárba, használja a következőt:

set _NT_SYMBOL_PATH=srv*c:\localsymbols*\\mybuilds\mysymbols

Ha úgy szeretné beállítani a szimbólum elérési útját, hogy a hibakereső a szimbólumfájlokat a \\mybuilds\mysymbols szimbólumtárolóból az alapértelmezett alsóbb rétegbeli tárolóba másolja (általában c:\debuggers\sym), használja a következőt:

set _NT_SYMBOL_PATH=srv**\\mybuilds\mysymbols

Kaszkádolt tároló használatához állítsa be a következő szimbólum útvonalát:

set _NT_SYMBOL_PATH = srv*c:\localsymbols*\\NearbyServer\store*https://DistantServer

Ebben a példában a SymSrv először a c:\localsymbols fájlban keresi a fájlt. Ha ott található, a fájl elérési útját adja vissza. Ellenkező esetben a SymSrv megkeresi a fájlt a \\NearbyServer\store áruházban. Ha ott található, a SymSrv átmásolja a fájlt a c:\localsymbols fájlba, és visszaadja a fájl elérési útját; ha nem található, a SymSrv megkeresi a fájlt a https://DistantServer, és ha ott található, a SymSrv a fájlt a \\NearbyServer\store mappába másolja, majd a c:\localsymbols fájlba.

Ez az utolsó példa bemutatja, hogyan használható egy szimbólumútvonal megfontolt kialakítása a szimbólumok letöltésének optimalizálásához. Ha van egy olyan munkahelyi webhelye, ahol hibakeresők csoportja van, és mindegyiknek egy távoli helyről kell szimbólumokat lekérnie, beállíthat egy közös kiszolgálót egy szimbólumtárolóval az összes hibakereső közelében. Ezután állítsa be az összes hibakeresőt a fent megadott szimbólum elérési útját használva. Az első hibakereső, amely egy bizonyos verziójú foo.pdb fájlt igényel, letölti azt a https://DistantServer-ról a \\NearbyServer\store könyvtárba, majd a saját gépére a c:\localsymbols mappába. A következő hibakereső, amely ugyanazt a fájlt igényli, letöltheti azt a \\NearbyServer\store áruházból, mert az előző hibakereső már letöltötte erre a helyre. Ez a többszintű gyorsítótárazás jelentős időt és hálózati sávszélességet takarít meg.

Microsoft Symbol Store

A Microsoft hozzáférést biztosít egy internetes szimbólumkiszolgálóhoz, amely a Windows operációs rendszer számos verziójához tartalmaz szimbólumfájlokat. Ez a szimbólumkatalógus nem garantáltan teljes, de széles körű. Más Microsoft-termékek is képviseltetik magukat.

Az internetes szimbólumkiszolgáló számos Windows-szimbólummal van feltöltve a Microsoft Windows operációs rendszerekhez, beleértve a gyakori javításokat, a szervizcsomagokat, a biztonsági összegző csomagokat és a kereskedelmi kiadásokat. Szimbólumok is elérhetők a kiszolgálón az aktuális bétaverziókhoz és a Windows-termékek kiadási jelöltjeihez, valamint számos más Microsoft-termékhez, például a Microsoft Internet Explorerhez.

Ha a hibakeresés során hozzáfér az internethez, úgy konfigurálhatja a hibakeresőt, hogy szükség szerint letöltse a szimbólumokat a hibakeresési munkamenet során, ahelyett, hogy külön töltené le a szimbólumfájlokat a hibakeresési munkamenet előtt. A rendszer letölti a szimbólumokat egy ön által megadott könyvtárhelyre, majd onnan tölti be őket a hibakereső.

A Microsoft szimbólumtároló URL-címe https://msdl.microsoft.com/download/symbols. Az alábbi példa bemutatja, hogyan állíthatja be a hibakereső szimbólum elérési útját (helyettesítse a saját tároló elérési útját a következőre: c:\DownstreamStore):

srv*c:\DownstreamStore*https://msdl.microsoft.com/download/symbols

Tömörített fájlok

A SymSrv kompatibilis a tömörített fájlokat tartalmazó szimbólumtárolókkal, amennyiben ezt a tömörítést előre formázta a Windows Server 2003 Resource Kittel elosztott compress.exe eszközzel. A tömörített fájloknak aláhúzásjelnek kell lennie a fájlkiterjesztések utolsó karaktereként (például module1.pd_ vagy module2.db_). További részletekért lásd: SymStorehasználata.

Kaszkádoláskor a fájlok nem lesznek tömörítve, kivéve, ha a céltároló a bal szélső tároló az elérési úton. Ha az elérési úton csak egy tároló található, és tömörített fájlt tartalmaz, a SymSrv az alapértelmezett alsóbb rétegbeli tárolóba másolja a fájlt, és onnan nyitja meg, annak ellenére, hogy az alapértelmezett alsóbb rétegbeli tároló nem szerepel a szimbólum elérési útján.

DbgHelp 6.1 és korábbi verziók: Ha a főtárolóban lévő fájlok tömörítve vannak, alsóbb rétegbeli tárolót kell használnia. A SymSrv feloldja az összes fájlt, mielőtt azokat az alsóbb rétegbeli tárolóba másolja.

A gyorsítótár törlése

Ha gyorsítótárként alsóbb rétegbeli tárolót használ, bármikor törölheti ezt a könyvtárat a lemezterület mentéséhez.

Lehetőség van egy hatalmas szimbólumtárolóra, amely számos különböző programhoz vagy Windows-verzióhoz tartalmaz szimbólumfájlokat. Ha frissíti a célszámítógépen használt Windows-verziót, a gyorsítótárazott szimbólumfájlok mindegyike megegyezik a korábbi verzióval. Ezek a gyorsítótárazott fájlok nem lesznek további használatban, ezért érdemes lehet törölni a gyorsítótárat.

A Windows hibakeresési eszközei egy agestore.exe nevű segédprogrammal rendelkezik, amely szelektíven távolítja el a fájlokat egy könyvtárfáról, így a legutóbb használt fájlok megmaradnak. Ez az eszköz arra szolgál, hogy eltávolítsa a nem használt fájlokat a szimbólumkiszolgáló-tárolókból. Ez lehetővé teszi számos beállítás vezérlését, beleértve a dátum- és könyvtárméret-algoritmusok csökkentését.

Lapos gyorsítótár-könyvtár

Az alapértelmezett alsóbb rétegbeli tárolót egyszerű könyvtárként deklarálhatja a szabványos szimbólumfaszerkezet helyett. Ehhez hívja meg a SymSetOptions függvényt SYMOPT_FLAT_DIRECTORY (ez a SymSrv SSRVOPT_FLAT_DEFAULT_STORE beállítását is beállítja). Ezt megelőzően mindenképpen hívja meg SymSetHomeDirectory; ellenkező esetben a szimbólumfájlok a program könyvtárába írhatók.

Mutatófájlok

A SymStore képes létrehozni és használni olyan fájlokat, amelyek a célfájlra mutatnak, ahelyett hogy magát a célfájlt használja. Ha egy szimbólumtároló ilyen mutatófájlt tartalmaz, az alapértelmezett beállítás a fájl másolása a mutatófájlban megjelölt helyről az áruházba. Ha úgy szeretne konfigurálni egy tárolót, hogy a mutatófájl a hivatkozott fájl helyett legyen másolva, hozzon létre egy wantsptr.txt nevű fájlt a céltároló gyökerében. A wantsptr.txt tartalma nem fontos, csak a fájl jelenléte.

Fájlok kizárása a szimbólumok listájából

Ha ki szeretné zárni a fájlokat a szimbólumok kereséséből, megadhatja a nevüket a symsrv.ini vagy a beállításjegyzékben. A symsrv.inifájljainak megadásához hozzon létre egy Kizárások nevű szakaszt, és sorolja fel a fájlokat. A fájlnevek helyettesítő karaktereket tartalmazhatnak, ahogyan az alábbi példában látható:

[Exclusions]
dbghelp.pdb
symsrv.*
mso*

Symsrv.ini ugyanabban a könyvtárban kell lennie, amelyben symsrv.dll található. A legtöbb telepítésben a fájl nem létezik, ezért létre kell hoznia egy újat.

Másik lehetőségként a beállításjegyzékben kizárandó fájlokat is tárolhatja. Hozza létre a következő beállításkulcsot: HKEY_LOCAL_MACHINE\Software\Microsoft\Symbol Server\Exclusions. Minden fájlnevet sztringértékként (REG_SZ) tárolhat ebben a kulcsban. A sztringérték neve adja meg a kizárandó fájl nevét. A sztringérték tartalmával megjegyzést tárolhat, amely leírja, hogy a fájl miért van kizárva.

Telepítés

A SymSrv (symsrv.dll) szimbólumkiszolgáló a Windows hibakeresési eszközei csomagban található. A fájlt ugyanabban a könyvtárban kell telepíteni, mint a betöltendő dbghelp.dll másolatát. További információ: A DbgHelp-kódtár meghívása.