2013-05-01 3 views
0

У меня есть WinDbg для загрузки символов в c: \ symbols. Символы для advapi32 (например) находятся в c:\symbols\advapi32.pdb\3F32049F550C42B09CF114A1FB8A97E92\advapi32.pdb. Единственный способ, которым я получил link.exe, и те другие заглушки exe, чтобы использовать эти символы, - это фактически находиться в каталоге c:\symbols\advapi32.pdb\3F32049F550C42B09CF114A1FB8A97E92. Так, например dumpbin /exports c:\Windows\SysWOW64\advapi32.dll возвращает украшенные имена в этой папке, как так:Получение link.exe, lib.exe, editbin.exe и dumpbin.exe для использования сервера символов

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

И при запуске из другой папки она возвращает:

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 

Можно ли получить DUMPBIN использовать DLL, загруженный символ сервер?

ответ

0

Нашел ответ на msdn page for symbol paths.

Эта страница утверждает, что окна отладчики получить их список символов из трех мест:

  • список выполнения установленных через меню Windbg и .sympath command например .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) приведет к тому, символам для загрузки.