【发布时间】:2016-03-22 18:23:02
【问题描述】:
SymInitialize 和 SymFromAddr 方法有什么方法可以自动从自定义符号存储中加载符号。我正在尝试使用 SymFromAddr() 将地址解析为可读的函数名。如果我在本地存储了给定模块的符号,它似乎工作正常,但是我希望它自动从提供给 SymInitialize 的路径下载它们,就像 WinDbg 那样。 我这样称呼 SymInitialize:
SymInitialize(procHandle, "SRV*c:\\symbols*http://msdl.microsoft.com/download/symbols;http://mycustomstore.com/symbols", TRUE);
SymFromAddr 返回错误 487“尝试访问无效地址”。因为它甚至从未尝试下载它,所以找不到该符号。
有没有办法强制下载?
【问题讨论】:
-
尝试删除分号并将其替换为星号或提供 null 并将 _NT_SYMBOL_PATH 设置为带星号的字符串 set _NT_SYMBOL_PATH=srv*\\localserver\myshare\mycache*company.com/manysymbols 参考 windbg 中的高级 symsrv 使用帮助文件