Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
SymSrv, simge dosyalarını merkezi bir sembol deposundan teslim edebilir. Bu depo, herhangi bir sayıda program veya işletim sistemine karşılık gelen herhangi bir sayıda sembol dosyası içerebilir. Depoda ikili dosyalar da bulunabilir (bu, minidumps hatalarını ayıklarken kullanışlıdır).
Depo, gerçek sembol ve ikili dosyaları içerebilir veya yalnızca sembol dosyalarının işaretçilerini içerebilir. Depolama alanı işaretçi içeriyorsa, SymSrv gerçek dosyaları doğrudan kaynaklarından alır.
SymSrv, büyük simge depolarını özel bir hata ayıklama görevi için uygun olan daha küçük bir alt kümeye ayırmak için de kullanılabilir.
Son olarak SymSrv, işletim sistemi tarafından sağlanan oturum açma bilgilerini kullanarak bir HTTP veya HTTPS kaynağından sembol dosyaları alabilir. SymSrv, akıllı kartlarla, sertifikalarla ve normal oturum açma bilgileriyle parolalarla korunan HTTPS sitelerini destekler. Daha fazla bilgi için bkz. HTTP Sembol Depoları.
Sembol Yolunu Ayarlama
Bu sembol sunucusunu kullanmak için symsrv.dll hata ayıklayıcıyla aynı dizine yüklenmelidir. Sembol yolu şu kodda gösterildiği gibi ayarlanabilir:
set _NT_SYMBOL_PATH = symsrv*ServerDLL*DownstreamStore*\\Server\Share
set _NT_SYMBOL_PATH = symsrv*ServerDLL*\\Server\Share
set _NT_SYMBOL_PATH = srv*DownstreamStore*\\Server\Share
set _NT_SYMBOL_PATH = srv*\\Server\Share
Bu söz diziminin bölümleri aşağıdaki gibi açıklanmıştır:
symsrv
Bu anahtar sözcüğün her zaman önce görünmesi gerekir. Hata ayıklayıcıya bu öğenin yalnızca normal bir sembol dizini değil bir sembol sunucusu olduğunu gösterir.
ServerDLL
Sembol sunucusu DLL'sinin adını belirtir. SymSrv sembol sunucusunu kullanıyorsanız, bu her zaman symsrv.dllolacaktır.
srv
Bu, symsrv*symsrv.dlliçin kısaltmadır.
DownstreamStore
Aşağı akış depoyu belirtir. Bu, tek tek sembol dosyalarını önbelleğe almak için kullanılacak yerel bir dizin veya ağ paylaşımıdır.
Yıldız işaretiyle ayrılmış birden fazla aşağı akış deposu belirtebilirsiniz. Birden çok downstream mağazası, bu sayfanın devamında Cascading Downstream Stores bölümünde açıklanmıştır.
Bir aşağı akış deposunun normalde belirtileceği bir satıra iki yıldız işareti eklerseniz, varsayılan aşağı akış deposu kullanılır. Bu mağaza, ana dizinin sym alt dizininde yer alacaktır. Giriş dizini varsayılan olarak hata ayıklayıcı yükleme dizinidir; bu, !homedir uzantısı kullanılarak veya DBGHELP_HOMEDIR ortam değişkeni ayarlanarak değiştirilebilir.
DownstreamStore var olmayan bir dizin belirtirse, SymStore dizini oluşturmayı dener.
DownstreamStore parametresi atlanırsa ve ek yıldız işareti yoksa (başka bir deyişle, tam olarak bir yıldız işaretiyle srv veya tam olarak iki yıldız işaretiyle symsrv kullanıyorsanız) aşağı akış deposu oluşturulmaz. Hata ayıklayıcı, tüm sembol dosyalarını yerel olarak önbelleğe almadan doğrudan sunucudan yükler.
Not Bir HTTP veya HTTPS sitesinden simgelere erişiyorsanız veya sembol deposu sıkıştırılmış dosyalar kullanıyorsa, aşağı akış deposu her zaman kullanılır. Aşağı akış deposu belirtilmezse, giriş dizininin sym alt dizininde bir depo oluşturulur.
\\Sunucu\Paylaş
Uzak simge deposunun sunucusunu ve paylaşımını belirtir.
Aşağı akış deposu kullanılırsa, hata ayıklayıcısı önce bu depoda bir sembol dosyası arar. Sembol dosyası bulunamazsa, hata ayıklayıcı belirtilen Sunucu ve Paylaş'tan sembol dosyasını bulur ve ardından bu dosyanın bir kopyasını aşağı akış deposunda önbelleğe alır. Dosya, ağaçtaki DownstreamStore altındaki bir alt dizine kopyalanır ve bu, \\Server\Share altındaki ağaçtaki konumuna karşılık gelir.
Sembol sunucusunun sembol yolundaki tek giriş olması gerekmez. Sembol yolu birden çok girdiden oluşuyorsa, hata ayıklayıcı bir sembol sunucusunun veya gerçek dizinin adı ne olursa olsun her girişi gerekli sembol dosyaları için sırayla (soldan sağa) denetler.
Aşağıda bazı örnekler verilmiştir. SymSrv'yi \\mybuilds\mysymbols üzerinde bir sembol deposuyla sembol sunucusu olarak kullanmak için aşağıdaki sembol yolunu ayarlayın:
set _NT_SYMBOL_PATH= symsrv*symsrv.dll*\\mybuilds\mysymbols
Hata ayıklayıcının \\mybuilds\mysymbols üzerindeki bir sembol deposundaki sembol dosyalarını yerel dizininize c:\localsymbols kopyalayacak şekilde sembol yolunu ayarlamak için şunu kullanın:
set _NT_SYMBOL_PATH=symsrv*symsrv.dll*c:\localsymbols*\\mybuilds\mysymbols
Hata ayıklayıcının HTTPS sitesinden https://www.company.com/manysymbols \\localserver\myshare\mycache yerel ağ dizinine sembol dosyalarını kopyalaması için sembol yolunu ayarlamak için şunu kullanın:
set _NT_SYMBOL_PATH=symsrv*symsrv.dll*\\localserver\myshare\mycache*https://www.company.com/manysymbols
Bu son örnek şu şekilde kısaltılabilir:
set _NT_SYMBOL_PATH=srv*\\localserver\myshare\mycache*https://www.company.com/manysymbols
Buna ek olarak, sembol yolu noktalı virgülle ayrılmış birkaç dizin veya sembol sunucusu içerebilir. Bu, birden çok konumdan (hatta birden çok sembol sunucusundaki) simgeleri bulmanıza olanak tanır. İkili dosyada eşleşmeyen bir sembol dosyası varsa, hata ayıklayıcı, yalnızca tam parametreleri kontrol ettiği için simge sunucusu ile dosyayı bulamaz. Ancak hata ayıklayıcı, geleneksel sembol yolunu kullanarak doğru ada sahip eşleşmeyen bir simge dosyası bulabilir ve başarıyla yükleyebilir. Dosya teknik olarak doğru sembol dosyası olmasa da yararlı bilgiler sağlayabilir.
Önbelleği Silme
Önbellek olarak Bir DownstreamStore kullanıyorsanız, disk alanından tasarruf etmek için istediğiniz zaman bu dizini silebilirsiniz.
Birçok farklı program veya Windows sürümü için sembol dosyaları içeren geniş bir sembol deposuna sahip olmak mümkündür. Hedef bilgisayarınızda kullanılan Windows sürümünü yükseltirseniz, önbelleğe alınan sembol dosyalarının tümü önceki sürümle eşleşecektir. Önbelleğe alınan bu dosyalar daha fazla kullanılmayacaktır ve bu nedenle önbelleği silmek için uygun bir zaman olabilir.
Basamaklı Aşağı Akış Depoları
Yıldız işaretiyle ayırarak istediğiniz sayıda aşağı yönlü depo belirtebilirsiniz. Bu depolar basamaklı simge depoları olarak bilinir.
başlangıçtan srv* veya symsrv*ServerDLL*sonrasındaki her belirteç bir sembol konumunu temsil eder. En soldaki belirteç önce denetlenir. Art arda iki yıldız işaretiyle veya dizenin sonundaki bir yıldız işaretiyle gösterilen boş bir belirteç, varsayılan aşağı akış deposunu temsil eder.
Burada, erişilmekte olan ana sembol deposundaki bilgileri tutmak için iki aşağı akış deposu kullanan bir sembol yolu örneği verilmiştir. Bunlar ana depo, orta düzey depo ve yerel önbellek olarak adlandırılabilir:
srv*c:\localcache*\\interim\store*https://msdl.microsoft.com/download/symbols
Bu senaryoda, SymSrv ilk olarak bir sembol dosyası için c:\localcache dosyasına bakar. Orada bulunursa, ona bir yol döndürür. Eğer orada bulunmazsa, \interim\store içinde arayacaktır. Sembol dosyası orada bulunursa, SymSrv dosyayı c:\localcache dosyasına kopyalar ve yolu döndürür. Orada bulunamazsa, SymSrv microsoft ortak sembol deposunahttps://msdl.microsoft.com/download/symbolsbakar; dosya orada bulunursa, SymSrv dosyayı \\interim\store ve c:\localcache dizinine kopyalar.
Aşağıdaki yol kullanılarak benzer bir davranış elde edilir:
srv**\\interim\store*https://internetsite
Bu durumda, yerel önbellek varsayılan aşağı akış deposudur ve ana depo bir internet sitesidir. Diğer ikisi arasında kullanılmak üzere orta düzey \\interim\store deposu belirtildi.
SymSrv basamaklı depolar içeren bir yolu işlediğinde, okuyamadığı veya yazamadığı depoları atlar. Bu nedenle, bir paylaşım kapanırsa dosya eksik depodan depo aşağı akışına herhangi bir hata olmadan kopyalanır. Bu hatanın olumlu bir yan etkisi, kullanıcının ana depolar yazılabilir olmadığı sürece birden fazla ana depo belirterek tek bir alt depo akışını beslemesine olanak tanımasıdır.
Sıkıştırılmış bir simge dosyası ana depodan alındığında, herhangi bir orta düzey depoda sıkıştırılmış biçimde depolanır. Dosya, yoldaki en alttaki depoda sıkıştırılmaz.
HTTP ve SMB Sembol Sunucusu Yollarıyla Çalışma
Daha önce açıklandığı gibi, zincirleme (veya basamaklı), sembol yolundaki her "*" ayırıcısı arasında oluşan kopyalamayı ifade eder. Simgeler soldan sağa sırayla aranıyor. Her bir eksikte, dosya bulunana kadar sonraki (yukarı akış) sembol sunucusu sorgulanır.
Bulunursa, dosya (yukarı akış) sembol sunucusundan önceki (aşağı akış) sembol sunucusuna kopyalanır. Bu, her (aşağı akış) sembol sunucusu için yinelenir. Bu şekilde, (paylaşılan) aşağı akış sembol sunucuları, sembol sunucularını kullanan tüm istemcilerin ortak çabalarıyla doldurulur.
Zincirlenmiş UNC yolları SRV* ön eki olmadan kullanılabilse de, symsrv.dll gelişmiş hata işlemesinin kullanılması için SRV* belirtilmesi önerilir.
Yola bir HTTP sembol sunucusu eklerken, yalnızca bir tane belirtilebilir (zincir başına) ve yolun sonunda olmalıdır (önbellek görevi görecek şekilde yazılamaz). HTTP tabanlı bir sembol deposu, mağaza listesinin ortasında veya solunda bulunuyorsa, bulunan dosyaların kopyalanması mümkün olmaz ve zincir bozulur. Ayrıca, simge işleyicisi bir web sitesinden dosya açamadığından, HTTP tabanlı depo listede en soldaki veya yalnızca depo olmamalıdır. SymSrv'ye bu sembol yolu sunulursa, varsayılan aşağı akış deposunun sembol yolunda gösterilip gösterilmediğine bakılmaksızın dosyayı varsayılan aşağı akış deposuna kopyalayıp oradan açarak kurtarmayı dener.
HTTP yalnızca SRV* ön eki kullanıldığında desteklenir (symsrv.dll sembol işleyicisi tarafından uygulanır).
Örnek HTTP ve SMB Paylaşım Sembol Sunucusu Senaryoları
Yalnızca UNC'ye yönelik yaygın bir dağıtım, tüm dosyaları (\\MainOffice\Symbols) barındıran merkezi bir ofisi, bir alt kümeyi önbelleğe alan şube ofislerini (\\BranchOfficeA\Symbols) ve başvurdıkları dosyaları önbelleğe alan masaüstlerini (C:\Symbols) içerir.
srv*C:\Symbols*\\BranchOfficeA\Symbols*\\MainOffice\Symbols
SMB paylaşımı birincil (yukarı akış) sembol deposu olduğunda okuma izni gereklidir.
srv*C:\Symbols*\\MachineName\Symbols
SMB paylaşımı bir ara (aşağı akış) sembol deposu olduğunda Okuma/Değiştirme gereklidir. İstemci, birincil simge deposundaki dosyayı SMB paylaşımına ve ardından SMB paylaşımından yerel klasöre kopyalar.
srv*C:\Symbols*\\MachineName\Symbols*https://msdl.microsoft.com/download/symbols
srv*C:\Symbols*\\MachineName\Symbols*\\MainOffice\Symbols
SMB paylaşımı bir SymProxy dağıtımında ara (aşağı akış) sembol deposu olduğunda, yalnızca Okuma gereklidir. SymProxy ISAPI Filtresi, yazma işlemlerini istemciyi değil gerçekleştirir.
srv*C:\Symbols*\\MachineName\Symbols*https://SymProxyName/Symbols
Birden Çok HTTP ve SMB Paylaşımı Sembol Sunucusu Önbellek Senaryosu
";" noktalı virgülle ayrılmış olarak birden çok sembol sunucusu ve önbellek konumu zinciri belirtmek mümkündür. Simgeler ilk zincirde yer alıyorsa, ikinci zincirden geçilmez. Simgeler ilk zincirde yer almadıysa, ikinci zincir geçirilir ve semboller ikinci zincirde bulunursa, belirtilen konumda önbelleğe alınır. Bu yaklaşım, temel olarak birincil simge sunucusunun kullanılmasını, semboller ilk zincirde belirtilen birincil simge sunucusunda mevcut değilse yalnızca ikincil sunucunun kullanılmasını sağlar.
srv*C:\Symbols*\\Machine1\Symbols*https://SymProxyName/Symbols;srv*C:\WebSymbols*https://msdl.microsoft.com/download/symbols
cache* localsymbolcache
Sembollerin yerel önbelleğini oluşturmanın bir diğer yolu da sembol yolunuzda dizeyi cache*localsymbolcache kullanmaktır. Bu, sembol sunucusu öğesinin parçası değil, sembol yolunuzda ayrı bir öğedir. Hata ayıklayıcı, bu dizenin sağındaki sembol yolunuzda görünen herhangi bir öğeden yüklenen simgeleri depolamak için belirtilen localsymbolcache dizinini kullanır. Bu, yalnızca bir sembol sunucusu tarafından indirilenler için değil, herhangi bir konumdan indirilen simgeler için yerel bir önbellek kullanmanıza olanak tanır.
Örneğin, aşağıdaki sembol yolu \\someshare konumundan alınan simgeleri önbelleğe almayacaktır. \\anothershare ile başlayan öğe cache*c:\mysymbols öğesinin sağ tarafında göründüğünden, \\anothershare öğesinden alınan simgeleri önbelleğe almak için c:\mysymbols kullanır. Ayrıca, simge sunucusu (iki veya daha fazla yıldız içeren srv ) tarafından kullanılan normal söz dizimi nedeniyle Microsoft ortak sembol deposundan alınan simgeleri önbelleğe almak için c:\mysymbols kullanır. Ayrıca, daha sonra bu yola başka konumlar eklemek için .sympath+ komutunu kullanırsanız, bu yeni öğeler de yolun sağ tarafına ekleneceği için önbelleğe alınır.
_NT_SYMBOL_PATH=\\someshare\that\cachestar\ignores;srv*c:\mysymbols*https://msdl.microsoft.com/download/symbols;cache*c:\mysymbols;\\anothershare\that\gets\cached
SymSrv Dosyaları Nasıl Bulur?
SymSrv, istenen sembol dosyası için tam bir UNC yolu oluşturur. Bu yol, _NT_SYMBOL_PATH ortam değişkenine kaydedilen sembol deposunun yolu ile başlar. SymbolServer yordamı daha sonra istenen dosyanın adını tanımlamak için kullanılır; bu ad, yola dizin adı olarak eklenir. SymbolServer'a geçirilen kimlik, iki ve üç parametrenin birleştirmesini içeren başka bir dizin adı eklenir. Bu değerlerden herhangi biri sıfırsa atlanır.
Sonuçta elde edilen dizinde sembol dosyası veya simge deposu işaretçi dosyası aranıyor.
Bu arama başarılı olursa, SymbolServer yolu çağırana iletir ve TRUE döner. Dosya bulunamazsa SymbolServerYANLIŞ döndürür.
Önbellek Boyutunu Küçültmek için AgeStore Kullanma
AgeStore aracı, belirtilen tarihten eski önbelleğe alınmış dosyaları silmek veya önbelleğin içeriğini belirtilen boyutun altına düşürmek için kullanılabilir. Ardıl deponuz çok büyükse bu yararlı olabilir. Ayrıntılar için bkz. AgeStore.