問題タブ [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.
c++ - symstore.exe を使用すると、Windbg または Visual Studio でミニダンプのシンボルを読み込めません
Windows 8 ユーザー マシンでのみ発生する Qt でのクラッシュを追跡するために、クラッシュ ダンプのデバッグに使用するローカル シンボル サーバーをセットアップしました。
最初に、次のフラグを設定して完全なビルドを行いました。
そして、Windows インストーラーと VS 展開プロジェクトを使用してインストーラーを構築しました。次に、次の symstore.exe コマンドを実行しました。
C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64>symstore.exe add /r /f C:\builddir\*.* /s "C:\Users\Sam\symbols" /t "Application" /v "rev xxxx" /c "test add"
これにより、適切な dll、exe、および pdb フォルダーが 内に作成されましたC:\Users\Sam\symbols
。
次に、ユーザー マシンにインストールし、Process Explorer を使用してミニダンプ ファイルを生成しました。ダンプを Visual Studio に読み込みC:\Users\Sam\symbols
、シンボル ファイルの場所に追加しようとしましたが、バイナリに一致するシンボルが見つかりませんでした。
次に、WinDbg64 (これは 64 ビット アプリケーションです) にロードしようとしました。!sym noisy
でシンボルパスを設定し、.symfix C:\Users\Sam\symbols
でリロードしまし.reload /f
た。これも成功せず、ロードされたシンボルのみをエクスポートしました。例えば:
これはすべてのモジュールで発生しますが、Qt コンポーネントは通常のビルドの一部としてビルドされず、シンボル フォルダーを pdb ファイルを直接含む lib フォルダーに設定しても役に立たないため、Qt コンポーネントではまったく期待できません。
ChkMatch.exe
次に、シンボル ストア内の実行可能ファイルと pdb ファイルに対して実行を試みました。実行可能ファイルの署名は、pdb が含まれているフォルダーと一致し、それらが一致する必要があることを示していましたが、次のエラーが発生しました。
念ChkMatch.exe
のため、インストールされた実行可能ファイルに対して再度実行しましたが、同じ署名と同じエラーが発生しました。
編集:symopt+0x40
署名GUIDをあまり詳しくチェックせずに、とにかくWinDbgにpdbを使用させる
設定を試みました。ただし、まだ何もロードされていません。余分な出力:
のフォルダーにC:\Users\Sam\symbols\QtGui4.dll
は名前4AA92D1B712000
があり、正しい dll であるべきものが含まれています。
c++ - シンボル サーバーを移動またはバックアップする方法
次のコマンドを使用して、ビルドのシンボルをローカル マシンに保存しています。
call "C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symstore.exe" add /r /f .\*.* /s "C:\Users\Sam\symbols" /t "Application" /v "rev %SVN_REVISION%" /c "adding revision %SVN_REVISION%"
これは、クラッシュをデバッグするために、これまでのところ正常に機能しています。ただし、中央サーバーで他の人がこれらを利用できるようにしたいので、このシンボルサーバーを移動する方法を知る必要があります。フォルダーをコピーするだけでは機能しません。ドキュメントにはいくつかの例がありますが、シンボルへのポインターの移動と指定された例を扱っているようです。
symstore add /y \\hubserver\hubshare\myindex.txt /g \\myarchive\appserver /s \\sampledir\symsrv /p /t "Large Application" /v "Build 432" /c "Sample Add from Index"
すべてを移動したいときに単一のエントリを移動するためのものです。
私はこの構文を次のように推測してみました:
"C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symstore.exe" /g C:\Users\Sam\symbols /s \\public\symbols
しかし、これは認識されたコマンドではありませんでした。
debug-symbols - Microsoft Symbol Server から Google Breakpad に移行するにはどうすればよいですか?
何か問題が発生した場合に備えて、当社の製品はミニダンプ ファイルを生成します。ダンプ ファイルから適切なスタック トレースを取得できるように、ビルドのデバッグ シンボルを格納およびアクセスするためにシンボル サーバーを実行します。
私たちの製品は他のオペレーティング システム (特に Linux と OS X) でも動作するため、Google ブレークパッドを検討し始めました。私もミニダンプとストレージ用の PDB ファイルを使用しているようです。しかし、私は疑問に思います:
(どのように) 既存のすべてのシンボルを失わないように、既存のシンボル サーバーを Google ブレークパッドに移行できますか? 他の人がすでに同じ動きをしていると思いますが、これには共通のアプローチがあるのではないでしょうか?
svn - ssindex / svnindex の使用が失敗する:「ディレクトリを解決できません」
コマンドを使用して、SVN リポジトリでシンボル ファイルのインデックスを作成しようとしています。
svnindex /debug /source=c:\crash /symbols=c:\crash\release
私が何をしようとしても、私はいつも得ます:
c:\crash には、ローカル ドライブ (d:\Repo_Crash) の SVN リポジトリにある単純な MFC デモ プログラムが含まれています。ActivePerl-5.20.2.2002-MSWin32-x86-64int-299195 と WDK8.1 のスタンドアロン デバッグ キットをインストールしました。C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\srcsrv へのパスを設定します。SVN バージョンは 1.9.0 (r1692801)
ファイル svn.pm を見ると、次の部分 (126 行目) が常に失敗していることがわかります。
そのため、その警告メッセージが表示されてから戻ります。
ここで何が間違っているのですか?
ps:私は地獄のようにグーグルで検索しましたが、関連するものは何も見つかりませんでした
windows - SymStore - 複数のファイルを追加
.pdb
を使用して、一連のファイルをシンボル サーバーに追加しようとしていますsymstore.exe
。ディレクトリ内のすべてではなく.pdb
、それらの選択 (日付に基づく)。
コマンドラインのヘルプにあるように、私が使用している単一のトランザクションでそれらを追加するにsymstore ... /f '@filelist.txt'
は、行ごとfilelist.txt
に実際のファイルを含むファイルを使用します。.pdb
(この情報は、 のコマンドライン ヘルプにのみ存在symstore
し、対応するオンラインヘルプ ページには存在しません。)
これは機能しません。保存するファイルは0です。ファイルリストから複数のファイルを追加するこの機能は、実際には実装されていないと思います。
を使用して、単一のトランザクションでファイルのリストを追加することに成功した人はいますsymstore.exe
か?
c++ - Symstore は関連付けられたフォルダーを削除しません
ネットワーク ドライブのシンボル ストアを使用して、アプリケーションのデバッグ シンボルを収集します。シンボルは、Visual Studio に読み込まれたクラッシュ ダンプ ファイルのデバッグ中に使用されます。「古い」バージョンのシンボルの削除を管理する Powershell スクリプトを配置しています。というか、そう思いました。最近、別のスクリプトを作成しているときに、symstoreを使用してシンボルを削除しても、実際には何も削除されないことに気付きました。symstore を使用してシンボルを削除すると、たとえば 000Admin フォルダーに「0000000161.deleted」ファイルが表示されます。このファイルには、関連するデバッグ シンボルのエントリが含まれています。次のようなエントリが含まれています。
上記の最初のエントリは、「Aggregat」モジュールに関連付けられたデバッグ シンボルのフォルダーです。トランザクション ID を使用してシンボルを削除すると、対応するフォルダー (つまり、B4E7044117F0469CB321E9FA9003E4CA5) も削除されることが予想されます。そうではないようです。
私の仮定は正しいですか?シンボル ストア構造を完全にクリーンアップする責任はありますか?