2013-05-27 2 views
3

Я хочу программно загружать символы с сервера символов micrsoft (http://msdl.microsoft.com/download/symbols). . с именем «ntdll.dll» Я хочу сохранить .pdb в любой каталог.скачать программные коды Windows

API-интерфейсы dbghelp.dll, похоже, решают эту проблему. (http://msdn.microsoft.com/en-us/library/windows/desktop/ms679291%28v=vs.85%29.aspx) Но я не знаю, как их правильно использовать.

Кто-нибудь сделал что-то подобное раньше и может показать мне пример кода?

спасибо!

+2

Будет проще использовать служебные программы, поставляемые с MS, такие как 'symchk': http://support.microsoft.com/kb/311503 – SomeWittyUsername

+0

действительно проще. Но это будет частью моего небольшого отладчика, и я не хочу быть зависимым от устаревших утилит. – user2252343

ответ

4

Я никогда не делал ничего подобного этого, но я был достаточно заинтригован, чтобы посмотреть. Вашими друзьями являются функции SymXxx, в пределах dbghelp.dll.

Начать с SymSetOptions следует SymInitialize. Затем функция, выполняющая тяжелый подъем работы, составляет SymFindFileInPath. Вторым аргументом (SearchPath) является путь поиска, разделенный точкой с запятой, который может включать в себя SRV*.

Утилита, которая делает именно то, что вы хотите (в значительной степени, без ничего меньше и ничего более) является symchk.exe. Взгляните на таблицу импорта, заметив, что она использует не более 9 функций из dbghelp (и никакой «сетевой» DLL, такой как winhttp или т. П.), Поэтому это должно дать вам хорошую подсказку о том, как действовать, и какие методы вам следует использовать.

Смежные вопросы