如何让 dbghelp 从自定义符号存储加载符号?

pul*_*van 1 winapi windbg dbghelp

SymInitialize 和 SymFromAddr 方法有没有办法从自定义符号存储中自动加载符号。我正在尝试使用 SymFromAddr() 将地址解析为可读的函数名称。如果我在本地存储了给定模块的符号,它似乎工作正常,但是我希望它从给定给 SymInitialize 的路径中自动下载它们,就像 WinDbg 那样。我这样调用 SymInitialize:

SymInitialize(procHandle, "SRV*c:\\symbols*http://msdl.microsoft.com/download/symbols;http://mycustomstore.com/symbols", TRUE);
Run Code Online (Sandbox Code Playgroud)

SymFromAddr 返回错误 487“尝试访问无效地址”。因为它找不到符号,因为它甚至从未尝试下载它。

有没有办法强制下载它们?

pul*_*van 5

事实证明,dbghelp.dll 需要 symsrv.dll 才能加载符号。它很难找到它,所以需要一些帮助。我使用 dbghelp 日志记录来帮助追踪问题https://msdn.microsoft.com/en-us/library/ms680687.aspx