Я хочу программно загрузить символы с сервера символов micrsoft (http://msdl.microsoft.com/download/symbols).
Например. учитывая имя «ntdll.dll», я хочу сохранить .pdb в любой каталог.
Похоже, API-интерфейсы из dbghelp.dll решают эту проблему. (http://msdn.microsoft.com/en-us/library/windows/desktop/ms679291%28v=vs.85%29.aspx)
Но я не знаю, как правильно их использовать.
Кто-нибудь делал что-то подобное раньше и может показать мне пример кода?
Спасибо!
Я никогда не делал что-то в точности как этот, но я был заинтригован достаточно, чтобы посмотреть. Ваши друзья SymXxx
функции, в пределах dbghelp.dll.
Начать с SymSetOptions
с последующим SymInitialize
,
Тогда функция, которая выполняет тяжелую работу SymFindFileInPath. Второй аргумент (SearchPath) — это путь поиска, разделенный точкой с запятой, который может включать SRV*
,
Утилита, которая делает именно то, что вы хотите (в значительной степени, ни с чем не более и не более), это symchk.exe. Посмотрите на его таблицу импорта, обратите внимание, что она использует не более 9 функций из dbghelp (и никаких «сетевых» DLL, таких как winhttp или тому подобное), так что это должно дать вам хорошее представление о том, как действовать, и какие методы вам следует использовать. использовать.
Других решений пока нет …