0

プライベート シンボル サーバーがあります (共有ネットワーク ドライブ内のフォルダーのみ)。少し前に、私たちのものではない多くの DLL (System.Xml、clr、kernel32 など) のシンボルが含まれていることに気付きました。_NT_SYMBOL_PATH環境変数は、ローカル キャッシュの場所SRV*c:\symbols*G:\Foundations\Symbols*http://msdl.microsoft.com/download/symbolsに設定され、ネットワーク ドライブにマップされます。これは、 https ://msdn.microsoft.com/en-us/library/windows/desktop/ee416588(v=vs.85).aspx#symbol_servers の指示に従っています。c:\symbolsG

今日、すべての非プライベートシンボルがどのようにそこに到達したかを最終的に理解しました。プライベート シンボル サーバーから clr.pdb フォルダーを削除し、ClrMD を使用してダンプのデバッグを開始しました。clr シンボルをローカル キャッシュに保存するだけでなく、プライベート シンボル サーバーにも再表示されました。

これを防ぐにはどうすればよいですか?私たちのプライベート シンボル サーバーに、スペースを占有し、フォルダーを乱雑にする無関係なガベージを含めたくありません。[そこにはすでに約 2600 のフォルダがあり、おそらく 90% は私たちのものではありません。これをきれいにする方法が想像できません...]

更新 1 :

したがって、のMSDN ページ ( https://msdn.microsoft.com/en-us/library/windows/desktop/ms681416(v=vs.85). aspx

さらに別のドキュメント ページ ( https://msdn.microsoft.com/en-us/library/windows/desktop/ms680689(v=vs.85).aspx )によると、cache要素を使用すると、特定のフォルダーがキャッシュとしてマークされます。ただし、設定によって_NT_SYMBOL_PATH=CACHE*c:\symbols;SRV*G:\Foundations\Symbols*http://msdl.microsoft.com/download/symbolsプライベート シンボル サーバーへのシンボルの追加が妨げられることはなく、設定_NT_SYMBOL_PATH=CACHE*c:\symbols;SRV*G:\Foundations\Symbols;SRV*http://msdl.microsoft.com/download/symbolsによって奇妙な動作が引き起こされました。分析していたダンプ... VSで同じダンプを開くと、正常に機能しました。だから私はClrMDがどういうわけかシンボルパスで何か違うことをしていると思います...

4

1 に答える 1

0

初めての試み

まず、シンボルパスについて言及します

SRV*c:\symbols*G:\Foundations\Symbols*http://msdl.microsoft.com/download/symbols

リンクしたドキュメントによると

シンボルが取得されると、ファイルとフォルダーが \mainserver\symbols 共有ディレクトリと、c:\symbols ディレクトリの個々のキャッシュに表示されます。

これが意図した動作です。

2 回目の試行

使用した 2 番目のシンボル パスは

CACHE*c:\symbols;SRV*G:\Foundations\Symbols*http://msdl.microsoft.com/download/symbols

次の 2 つの部分で構成されます。

cache*c:\symbols

(これで問題ありません)そして

SRV*G:\Foundations\Symbols*http://msdl.microsoft.com

これは(構文の観点から)と同じです

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

リンクされたMSDNドキュメントで次のように説明されています:

シンボルのローカル キャッシュと共に Microsoft シンボル サーバーのみを使用して、インターネット経由でのアクセスを高速化するには、_NT_SYMBOL_PATH に次の設定を使用します。srv*c:\symbols*http://msdl.microsoft.com/download/symbols

はい、MicrosoftファイルをにダウンロードしますG:

3 番目のアプローチ

前回の挑戦は

CACHE*c:\symbols;SRV*G:\Foundations\Symbols;SRV*http://msdl.microsoft.com/download/symbols

構文(srv*http...ローカル フォルダーを定義せずに) は、リンクされたドキュメントのいずれにも記載されていないため、どのような動作が発生するかわかりません。

わたしの提案

SRV*c:\symbols*G:\Foundations\Symbols

G: から C: にプライベート シンボルをダウンロードする必要があります。と

SRV*c:\symbols*http://msdl.microsoft.com/download/symbols

Microsoft から C: にシンボルをダウンロードする必要があります。だからそれらを組み合わせて

SRV*c:\symbols*G:\Foundations\Symbols;SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
于 2015-10-03T20:47:35.193 に答える