問題タブ [symstore]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hash - Microsoft SymbolServer/ローカルキャッシュハッシュアルゴリズム
Microsoft SymbolLocalCacheディレクトリに使用されているハッシュアルゴリズムを理解しようとしています。
たとえば、ローカルキャッシュは次のようになります。
ファイルとそのデバッグデータベースの間には、ある種の対応関係があるようです。それ以外では、これらの(おそらく)16進文字列フォルダーの名前がどのように生成されているのか理解できません。
それらのいくつかは9桁、いくつかは13桁、その他は33桁です。実際のライブファイル(何らかの理由でシンボルキャッシュに保存されている)には13桁のハッシュがあり、その(ほぼ同様の)デバッグデータベースには9桁のハッシュがあるように見えます。一部のデバッグデータベースは13桁のハッシュを取得します。対応するライブファイルはありませんが、これらが特別な理由を理解することはできません。
私が知っているあらゆる種類のハッシュアルゴリズム(そのうち39個)を使用してファイルをハッシュしようとしましたが、どのような方法でも一致しません(ストレート、リバース、オルタネートエンディアンなど)。
何か案は?
更新 私はついにそれを見つけたと思います。シンボルストレージフォーマットから:
SymStoreは、ファイルシステム自体をデータベースとして使用します。シンボルファイルのタイムスタンプ、署名、年齢、その他のデータなどに基づいたディレクトリ名を使用して、ディレクトリの大きなツリーを作成します。
Dangを編集 してください。残念ながら、ディレクトリ名はさまざまな側面から派生しているとだけ述べられていますが(私が推測するハッシュではありません)、正確な方法については述べていません。検索は続行されます…:-(
.net - Symbol Server で同じ AssemblyVersion に対して複数の PDB を使用できますか?
AssemblyVersion が 1.0.0.0 のクラス ライブラリがあり、更新されても保持する必要があります (SharePoint...)。
したがって、AssemblyFileVersion を「実際の」バージョンとして使用しています。
今、 Symbol Serverをセットアップしたいのですが、同じ AssemblyVersion に対して複数の PDB を持ち、自動的に機能させることが実際に可能かどうか疑問に思っています。
PublicKeyToken も常に同じなので、そこを区別する方法はありません。
visual-studio-2010 - TFS 2010 を使用せずにソース ファイルをスタンドアロン ソース サーバーにインデックス化する
コマンドラインからVisual Studio 2010を使用して構築されたソリューションがあります。ビルド後、 symstoreDebugging Tools for Windows から が呼び出され、PDB とバイナリがネットワーク フォルダーにポストされます。このネットワーク フォルダーは、シンボル ストアとして使用されます。
Source Server もあり、Symbol Store と一緒に使用してソース ファイルを保持できることは理解しています。ソース ファイルをそのシンボル ストアに追加するにはどうすればよいですか? Debugging Tools にディレクトリが表示srcsrvされますが、これらのツールを使用して既存のソース管理システムの外部にソース サーバー システムを作成する方法が見つかりません。
symstore - ナイトリービルドとリリースビルドのシンボルストアを維持するための戦略
組織とそのさまざまな製品の中央シンボルサーバーをセットアップしようとしています。各製品には、ナイトリービルドと、「1回限りの」ベータ、RC、およびリリースビルドがあります。
私が持っている目標は、約1か月分のナイトリービルドシンボルを保持することです。ここでは多くの「ドッグフーディング」を実行して、人々が内部ビルドを使用できるようにします。可能な場合は、内部winqualから取得したファイルを簡単にデバッグしたいと考えています。
また、すべてのベータ、RC、およびリリースビルドシンボルを永続的に保持できる必要があります。
多くの調査を行った後、ここでの最善のアプローチは、2つのシンボルサーバーを用意することだと思います。1つはナイトリービルド(以前の〜30ビルドが登録されています)用で、もう1つはベータ、RC、リリースシンボルを永続的に保存するためのものです。製品タグとバージョンタグを使用してビルドスクリプトをシンボルストアに追加し、製品とビルド番号を記録します。ビルドが成功すると、スクリプトはシンボルサーバーのhistory.txtを使用して、削除されていない最も古いビルドを識別し、それをsymstoreから削除します。
ベータ版、RC版、リリース版の「1回限りの」ビルドの場合、作成後にビルドとインストールの担当者が識別し、2番目のシンボルサーバー(永続ストレージ用)にも追加します。
だから私はいくつかの質問があります:これはまったく合理的だと思いますか?これを行うにはもっと簡単な方法があるはずですが、シンボルサーバーを使用しているほとんどの組織はこの問題に取り組む必要はありませんか?
次に、このアプローチを進める場合、サーバーに登録されている最も古い既知のシンボルセットを識別するための絶対確実な方法はありますか?最終変更日を使用することを考えましたが、history.txtが最も適切であるように見えますが、エラーが発生しやすいスクリプト解析です。製品とバージョンの情報を含むシンボルを追加するだけでなく、製品とバージョンの情報を含むシンボルを削除できることを望んでいました。
助けてくれてありがとう。私は誰かが持っているかもしれないどんな質問にも喜んで答えるか、またはどんな説明も提供します。
hash - symstoreはディレクトリハッシュ値をどのように計算しますか
symstoreがディレクトリ名を作成するために使用するハッシュアルゴリズムを探しています。ハッシュの生成に使用されるデータ要素を説明するこのリンクMicrosoftSymbolServer / Local Cache Hash Algorithmを見つけましたが、ハッシュ値の計算方法については詳しく説明していません。symstoreがどのようにハッシュディレクトリを生成するのか興味があります。誰かが表示できるサンプルコードを持っているなら、それは素晴らしいことです!
symbol-server - シンストアの削除エラー
symstore.exe ツールの削除機能の使用方法は次のとおりです。
昔から保存されているシンボルを削除したいのですが。D:\Symbols\[productname]シンボルが保存されるルートです。次の行でツールを呼び出します。
次のエラーが発生します。
このエラーは、パスが有効なシンボル サーバーであると認識したことを示しています。の 000Admin フォルダを再確認しましたがD:\Symbols\[productname]\000Admin\、実際には 0000000001 から 0000001261 までのトランザクションがあります。他のトランザクションも削除しようとしましたが、同じエラーが発生します。history.txt、lastid.txt、および server.txt もそこにあります。私は何が欠けていますか?
symstore - TFS 2010 ビルドの実行時の symstore エラー
背景: TFS2010 を介して Windows Server 2003 R2 マシンで実行されているビルドがいくつかあります。これらのビルド定義はすべて、公開シンボルへのパスが「\\server\SymbolStore」に設定されており、ビルドは正常に実行されます。
(注 - 私はこのセットアップを元従業員から継承しました。別の 2K8 マシンで実行している他のビルドも問題なく実行しています)
現在、同じ設定を使用して、これらのビルドを新しい Windows 2008 R2 ビルド サーバーに移行しています。
問題: 新しいビルド マシンでビルドを実行すると、ビルドがワークフローで "Publish Symbols" アクティビティを実行しようとするまで、すべて正常に動作しますが、その時点でエラーが発生します。
SYMSTORE エラー: クラス: サーバー。説明: サーバーに接続できませんでした。エラー 5: アクセスが拒否されました。TF270015: 'symstore.exe' が予期しない終了コードを返しました。「0」が必要です。実際の「5」。
また、ビルド ステータスを Partially Succeeded に設定します。
これまでのところ、これらのエラー メッセージを Web で検索しましたが、役に立ちませんでした。
いつものように、事前に感謝します
archive - symstore を使用して X か月より古いすべての pdb を削除する
記事に目を通しましたが、私の質問に対する答えが見つかりませんでした-
サーバーに公開された pdb がありますが、スペースが不足しています... symstore を使用して適切に非公開/移動/アーカイブなどを行い、トランザクション ID とそれらの保存方法に影響を与えないようにしたいと考えています。
Xか月より古いすべてのpdbを移動/削除するように指定するにはどうすればよいですか
ここでコマンド リストを確認しました: http://msdn.microsoft.com/en-us/library/windows/desktop/ms681378(v=vs.85).aspx
dbghelp - デバッグシンボルとバイナリを並べて保存する方法
最近、SymChkを使用してMicrosoftシンボルストアからシンボルをダウンロードすると、PDBだけでなくDLLも表示されることに気付きました。SymChk / SymStoreなどの標準のMicrosoftツールを使用して、バイナリとシンボルの両方を保存できるかどうか疑問に思っていますか?