1

Windows *.dmp ファイルの読み取りに続く方法で

任意の顧客からダンプ ファイルを受け取り、デバッグ セッションを実行してクラッシュを確認すると、多くの場合、MS または他のサード パーティのライブラリにあることがわかります。次の問題は、実際にモジュールを使用できることを確認できるほど、PC のセットアップに関する知識がない可能性があることです。

たとえば、現在、ntdll.dll (5.01.2600.5512) のシンボルをロードしようとして立ち往生しています。MSVC 2005 では、モジュール リスト ウィンドウのパス列に、完全パス ファイル名の前に * が表示され、XP/SP1/SP1a/SP2/SP3 用にダウンロードしたシンボルの読み込みが拒否されます。

インターネットからダウンロードしてローカルキャッシュに保存するシンボルサーバーのセットアップがあり、PCにあるモジュールに対して正常に機能しているようです。メソッドと同等の GUI を使用する

_NT_SYMBOL_PATH=srv*d:\SymbolCache*\\server1\Third-Party-PDB;srv*d:\SymbolCache*\\server2\Windows\Symbols*http://msdl.microsoft.com/download/symbols を設定します。

シンボルが間違っている可能性がありますが、新しいシンボルがダウンロードされていないため、次はどこに行けばよいですか? お客様に連絡して、インストールされている SP やその他のパッチを尋ねる必要はありますか? 必要なシンボルを取得するには、そのマシンをインストールしてから、dmp ファイルを使用してデバッガーを実行する必要がありますか?

4

4 に答える 4

3

WinDbg(Windowsパッケージのデバッグツールの一部)を使用している場合は、Microsoftから適切な記号を自動的に取得するのは簡単です。「.symfix」(または「.symfix +」、既存のシンボル検索パスに追加するだけ)コマンドを使用して、シンボルパスを構成します。

それが完了し、クラッシュダンプがWinDbgにロードされたら、「。reload / f」と入力して、WinDbgにシンボルをリロードさせます。ダンプファイル自体の情報を使用して、マシンにあるDLLに関係なく、Microsoftのパブリックシンボルサーバーから正しいシンボルをプルします。

これを行った後、何らかの理由でシンボルが正しくロードされない場合は、WinDbgのコマンドウィンドウに「!symnoisy」と入力して、シンボルを再度リロードしてください。WinDbgがそれらをロードしようとすると、検索/ロードプロセスで発生したエラーが出力されます。これらのエラーメッセージは、何が問題になっているのか、正しいシンボルがロードされていない理由をさらに診断するのに役立ちます。

この投稿には、役立つ可能性のある情報が含まれています。

于 2008-12-31T17:39:13.170 に答える
1

コマンド プロンプトに「 」と入力する場合はSet _NT_SYMBOL_PATH = srv...、次の 2 つの点を考慮する必要があります。

  • cmd.exesetコマンドは空白を無視しないため、これは " _NT_SYMBOL_PATH" ではなく " "という変数を定義します_NT_SYMBOL_PATH
  • そのコマンド プロンプトの子としてデバッガーを起動する必要があります。setxただし、コントロール パネルを使用して永続的な環境変数を設定する場合、またはコマンド (Windows Vista または Windows リソース キットのいずれか)を使用する場合は、これを行う必要はありません。

シンボル パスを別の方法で設定している場合、これは当てはまりません。

于 2009-01-05T23:55:15.240 に答える
0

このkbの記事の指示に従ってみて、シンボルパスが正しく構成されていること、WinDbgがアクセスできること、およびntdllシンボル(たとえば)が実際にシンボルキャッシュにダウンロードされていることを確認してください。この記事では、SymChkツールを使用してキャッシュ内のシンボルを手動でダウンロードして検証する方法についても説明しています。

于 2008-12-31T16:26:30.650 に答える
0

ミニダンプをデバッグするために何を使用していますか? つまり、WinDBG または Visual Studio ですか? また、ミニダンプはどのように生成されましたか?

システム dll シンボルを正しく解決するには、ミニダンプに十分な情報が必要です。シンボルのローカル ダウンロードまたはhttp://msdl.microsoft.com/を使用していますか?

更新: パブリック マイクロソフト シンボル ストアを [ツール] -> [オプション] -> [デバッグ] -> [シンボル] -> [シンボル ファイル (.pdb)] の場所に追加し、[モジュール] ウィンドウでモジュールを右クリックしてシンボルを手動でロードできるはずです。自動的に行われない場合はロードします。

_NT_SYMBOL_PATHまた、VS 2005 がミニダンプ シンボルを解決するために参照していない可能性もあります。

于 2008-12-31T17:15:24.153 に答える