0

シンボルをc:\symbolsにダウンロードするように WinDbg を設定しました。advapi32 のシンボル (たとえば) は にありc:\symbols\advapi32.pdb\3F32049F550C42B09CF114A1FB8A97E92\advapi32.pdbます。私がlink.exeを取得した唯一の方法と、これらのシンボルを使用する他のスタブexeは、実際にディレクトリにいることc:\symbols\advapi32.pdb\3F32049F550C42B09CF114A1FB8A97E92です。たとえばdumpbin /exports c:\Windows\SysWOW64\advapi32.dll、次のように、そのフォルダー内の装飾された名前を返します。

   1770  301 000455C6 UnregisterIdleTask = _UnregisterIdleTask@12
   1771  302          UnregisterTraceGuids (forwarded to ntdll.EtwUnregisterTraceGuids)
   1772  303 000595D8 UpdateTraceA = _UpdateTraceA@16
   1773  304 000595F9 UpdateTraceW = _UpdateTraceW@16
   1774  305 00042BB6 UsePinForEncryptedFilesA = _UsePinForEncryptedFilesA@12
   1775  306 00042BFF UsePinForEncryptedFilesW = _UsePinForEncryptedFilesW@12

別のフォルダーから実行すると、次のように返されます。

   1770  301 000455C6 UnregisterIdleTask
   1771  302          UnregisterTraceGuids (forwarded to ntdll.EtwUnregisterTraceGuids)
   1772  303 000595D8 UpdateTraceA
   1773  304 000595F9 UpdateTraceW
   1774  305 00042BB6 UsePinForEncryptedFilesA
   1775  306 00042BFF UsePinForEncryptedFilesW

シンボル サーバーによってダウンロードされた dll を使用するために dumpbin を取得することは可能ですか?

4

1 に答える 1

0

msdn page for symbol pathsで回答を見つけました。

そのページには、Windows デバッガーが 3 つの場所からシンボル リストを取得すると記載されています。

  • windbg メニューと.sympath コマンドで設定されたランタイムリスト。.sympath srv*c:\MyServerSymbols*http://msdl.microsoft.com/download/symbols
  • _NT_ALT_SYMBOL_PATH環境変数
  • _NT_SYMBOL_PATH環境変数

したがって、その値を呼び出すSET _NT_SYMBOL_PATH=symsrv*symsrv.dll*c:\symbols2*http://msdl.microsoft.com/download/symbolsか永続的な環境に追加するだけで (たとえばsetxを介して)、シンボルが読み込まれます。

于 2013-05-01T18:56:22.213 に答える