Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
SymStore používá samotný systém souborů jako databázi. Vytvoří velký strom adresářů s názvy adresářů na základě takových věcí, jako jsou časová razítka souboru symbolů, podpisy, věk a další data.
Například po přidání několika různých souborů acpi.dbgs na server by adresáře mohly vypadat takto:
Directory of \\mybuilds\symsrv\acpi.dbg
10/06/1999 05:46p <DIR> .
10/06/1999 05:46p <DIR> ..
10/04/1999 01:54p <DIR> 37cdb03962040
10/04/1999 01:49p <DIR> 37cdb04027740
10/04/1999 12:56p <DIR> 37e3eb1c62060
10/04/1999 12:51p <DIR> 37e3ebcc27760
10/04/1999 12:45p <DIR> 37ed151662060
10/04/1999 12:39p <DIR> 37ed15dd27760
10/04/1999 11:33a <DIR> 37f03ce962020
10/04/1999 11:21a <DIR> 37f03cf7277c0
10/06/1999 05:38p <DIR> 37fa7f00277e0
10/06/1999 05:46p <DIR> 37fa7f01620a0
V tomto příkladu může vyhledávací cesta pro soubor symbolů acpi.dbg vypadat takto: \\mybuilds\symsrv\acpi.dbg\37cdb03962040.
Ve vyhledávacím adresáři mohou existovat tři soubory:
acpi.dbg, pokud byl soubor uložen
file.ptr s cestou k příslušnému souboru symbolů, pokud byl uložen ukazatel
refs.ptr, který obsahuje seznam všech aktuálních umístění pro acpi.dbg s tímto časovým razítkem a velikostí obrázku, které jsou aktuálně přidány do úložiště symbolů
Zobrazení výpisu adresáře \\mybuilds\symsrv\acpi.dbg\37cdb03962040 poskytuje následující:
10/04/1999 01:54p 52 file.ptr
10/04/1999 01:54p 67 refs.ptr
Soubor.ptr obsahuje textový řetězec "\\mybuilds\symbols\x86\2128.chk\symbols\sys\acpi.dbg". Vzhledem k tomu, že v tomto adresáři není žádný soubor s názvem acpi.dbg, ladicí program se pokusí najít soubor v umístění \\mybuilds\symbols\symbols\x86\2128.chk\symbols\sys\acpi.dbg.
Obsah refs.ptr používá pouze SymStore, nikoli ladicí program. Tento soubor obsahuje záznam všech transakcí, které proběhly v tomto adresáři. Vzorový řádek z refs.ptr může být:
0000000026,ptr,\\mybuilds\symbols\x86\2128.chk\symbols\sys\acpi.dbg
To ukazuje, že byl přidán ukazatel na \\mybuilds\symbols\x86\2128.chk\symbols\sys\acpi.dbg s transakcí "0000000026".
Některé soubory symbolů zůstávají konstantní prostřednictvím různých produktů nebo sestavení nebo konkrétního produktu. Jedním z příkladů je soubor systému Windows 2000 msvcrt.pdb. Seznam adresářů \\mybuilds\symsrv\msvcrt.pdb ukazuje, že na server symbolů byly přidány pouze dvě verze msvcrt.pdb:
Directory of \\mybuilds\symsrv\msvcrt.pdb
10/06/1999 05:37p <DIR> .
10/06/1999 05:37p <DIR> ..
10/04/1999 11:19a <DIR> 37a8f40e2
10/06/1999 05:37p <DIR> 37f2c2272
Seznam adresářů \\mybuilds\symsrv\msvcrt.pdb\37a8f40e2 však ukazuje, že odkaz.ptr obsahuje několik ukazatelů.
Directory of \\mybuilds\symsrv\msvcrt.pdb\37a8f40e2
10/05/1999 02:50p 54 file.ptr
10/05/1999 02:50p 2,039 refs.ptr
Obsah souboru \\mybuilds\symsrv\msvcrt.pdb\37a8f40e2\refs.ptr jsou následující:
0000000001,ptr,\\mybuilds\symbols\x86\2137\symbols\dll\msvcrt.pdb
0000000002,ptr,\\mybuilds\symbols\x86\2137.chk\symbols\dll\msvcrt.pdb
0000000003,ptr,\\mybuilds\symbols\x86\2138\symbols\dll\msvcrt.pdb
0000000004,ptr,\\mybuilds\symbols\x86\2138.chk\symbols\dll\msvcrt.pdb
0000000005,ptr,\\mybuilds\symbols\x86\2139\symbols\dll\msvcrt.pdb
0000000006,ptr,\\mybuilds\symbols\x86\2139.chk\symbols\dll\msvcrt.pdb
0000000007,ptr,\\mybuilds\symbols\x86\2140\symbols\dll\msvcrt.pdb
0000000008,ptr,\\mybuilds\symbols\x86\2140.chk\symbols\dll\msvcrt.pdb
0000000009,ptr,\\mybuilds\symbols\x86\2136\symbols\dll\msvcrt.pdb
0000000010,ptr,\\mybuilds\symbols\x86\2136.chk\symbols\dll\msvcrt.pdb
0000000011,ptr,\\mybuilds\symbols\x86\2135\symbols\dll\msvcrt.pdb
0000000012,ptr,\\mybuilds\symbols\x86\2135.chk\symbols\dll\msvcrt.pdb
0000000013,ptr,\\mybuilds\symbols\x86\2134\symbols\dll\msvcrt.pdb
0000000014,ptr,\\mybuilds\symbols\x86\2134.chk\symbols\dll\msvcrt.pdb
0000000015,ptr,\\mybuilds\symbols\x86\2133\symbols\dll\msvcrt.pdb
0000000016,ptr,\\mybuilds\symbols\x86\2133.chk\symbols\dll\msvcrt.pdb
0000000017,ptr,\\mybuilds\symbols\x86\2132\symbols\dll\msvcrt.pdb
0000000018,ptr,\\mybuilds\symbols\x86\2132.chk\symbols\dll\msvcrt.pdb
0000000019,ptr,\\mybuilds\symbols\x86\2131\symbols\dll\msvcrt.pdb
0000000020,ptr,\\mybuilds\symbols\x86\2131.chk\symbols\dll\msvcrt.pdb
0000000021,ptr,\\mybuilds\symbols\x86\2130\symbols\dll\msvcrt.pdb
0000000022,ptr,\\mybuilds\symbols\x86\2130.chk\symbols\dll\msvcrt.pdb
0000000023,ptr,\\mybuilds\symbols\x86\2129\symbols\dll\msvcrt.pdb
0000000024,ptr,\\mybuilds\symbols\x86\2129.chk\symbols\dll\msvcrt.pdb
0000000025,ptr,\\mybuilds\symbols\x86\2128\symbols\dll\msvcrt.pdb
0000000026,ptr,\\mybuilds\symbols\x86\2128.chk\symbols\dll\msvcrt.pdb
0000000027,ptr,\\mybuilds\symbols\x86\2141\symbols\dll\msvcrt.pdb
0000000028,ptr,\\mybuilds\symbols\x86\2141.chk\symbols\dll\msvcrt.pdb
0000000029,ptr,\\mybuilds\symbols\x86\2142\symbols\dll\msvcrt.pdb
0000000030,ptr,\\mybuilds\symbols\x86\2142.chk\symbols\dll\msvcrt.pdb
To ukazuje, že stejný soubor msvcrt.pdb byl použit pro více sestavení symbolů systému Windows 2000 uložených ve symsrv \\mybuilds\symsrv.
Tady je příklad adresáře, který obsahuje kombinaci přidání souborů a odkazů:
Directory of E:\symsrv\dbghelp.dbg\38039ff439000
10/12/1999 01:54p 141,232 dbghelp.dbg
10/13/1999 04:57p 49 file.ptr
10/13/1999 04:57p 306 refs.ptr
V tomto případě má refs.ptr následující obsah:
0000000043,file,e:\binaries\symbols\retail\dll\dbghelp.dbg
0000000044,file,f:\binaries\symbols\retail\dll\dbghelp.dbg
0000000045,file,g:\binaries\symbols\retail\dll\dbghelp.dbg
0000000046,ptr,\\MyDir\bin\symbols\retail\dll\dbghelp.dbg
0000000047,ptr,\\foo2\bin\symbols\retail\dll\dbghelp.dbg
Transakce 43, 44 a 45 tedy přidaly stejný soubor na server a transakce 46 a 47 přidaly ukazatele. Pokud jsou odstraněny transakce 43, 44 a 45, soubor dbghelp.dbg bude odstraněn z adresáře. Adresář bude mít následující obsah:
Directory of e:\symsrv\dbghelp.dbg\38039ff439000
10/13/1999 05:01p 49 file.ptr
10/13/1999 05:01p 130 refs.ptr
Soubor.ptr obsahuje "\\foo2\bin\symbols\retail\dll\dbghelp.dbg" a odkazy.ptr obsahují
0000000046,ptr,\\MyDir\bin\symbols\retail\dll\dbghelp.dbg
0000000047,ptr,\\foo2\bin\symbols\retail\dll\dbghelp.dbg
Vždy, když je poslední položka v souboru refs.ptr ukazatel, soubor file.ptr bude existovat a bude obsahovat cestu k přidruženému souboru. Pokaždé, když je poslední položka v refs.ptr soubor, v tomto adresáři nebude existovat soubor.ptr. Proto jakákoli operace odstranění, která odebere konečnou položku v souboru refs.ptr, může vést k vytvoření, odstranění nebo změně souboru.ptr.