【问题标题】:download windows symbols programmatically以编程方式下载 Windows 符号
【发布时间】:2013-05-22 17:41:39
【问题描述】:

我想以编程方式从 micrsoft 符号服务器 (http://msdl.microsoft.com/download/symbols) 下载符号。 例如。给定名称“ntdll.dll”,我想将 .pdb 保存到任何目录中。

dbghelp.dll 的 API 似乎可以解决这个问题。 (http://msdn.microsoft.com/en-us/library/windows/desktop/ms679291%28v=vs.85%29.aspx) 但我不知道如何以正确的方式使用它们。

以前有没有人做过类似的事情,可以给我看一些示例代码吗?

谢谢!

【问题讨论】:

  • 使用MS提供的实用程序会更容易,例如symchk:support.microsoft.com/kb/311503
  • 确实更容易。但这将是我自己的小调试器的一部分,我不想依赖外部实用程序。

标签: c++ windows windbg


【解决方案1】:

我从来没有做过与 this 完全一样的事情,但我很感兴趣去看看。您的朋友是 dbghelp.dll 中的 SymXxx 函数。

SymSetOptions 开头,后跟SymInitialize。 然后,完成繁重工作的函数是SymFindFileInPath。第二个参数(SearchPath)是以分号分隔的搜索路径,可能包括SRV*

symchk.exe 是完全符合您要求的实用程序(几乎是,不多也不少)。看看它的导入表,注意它使用了不超过 9 个来自 dbghelp 的函数(并且没有诸如 winhttp 之类的“网络”DLL)——所以这应该会给你一个很好的线索,如何继续,以及你应该使用哪些方法使用。

【讨论】:

    猜你喜欢
    • 2021-12-04
    • 2011-02-24
    • 2018-04-08
    • 2012-01-10
    • 2016-07-26
    • 2018-01-31
    • 2021-07-13
    • 2017-07-05
    • 2013-03-30
    相关资源
    最近更新 更多