【问题标题】:ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: )错误:SymGetLineFromAddr64,GetLastError:487(地址:)
【发布时间】:2014-10-15 04:26:53
【问题描述】:

我正在尝试使用用于获取调用堆栈的 StackWalker。运行时,显示 487 错误。有人知道吗?

【问题讨论】:

    标签: c++ exception callstack


    【解决方案1】:

    这只是意味着 StackWalker 在回溯中找不到该函数的调试信息。如果您不需要知道该函数的源文件和行号,则可以忽略它。您可以使用 Microsoft 符号服务器使其适用于 Windows 组件中的功能:http://support.microsoft.com/?kbid=311503

    【讨论】:

    • 感谢您的回复。我调试了程序,发现函数SysGetLineFromAddr64失败了。你知道在什么情况下可能会导致这个问题?我使用的参数是当前进程和从STACKFRAME64查询到的地址。
    • 为了找出地址对应于SysGetLineFromAddr64的源文件的行号,需要使用一个特殊的数据库,它不是可执行文件和DLL的必要部分,称为调试信息。为了使用调试信息,它需要在SysGetLineFromAddr64 可以找到它的地方可用。它可以在 EXE/DLL 映像本身中,也可以在 EXE/DLL 引用的单独文件中。如果它在一个单独的文件中,它需要位于它知道查找它的位置,例如在当前目录或符号服务器中。
    • 我遇到了同样的问题。有具体的解决办法吗?
    猜你喜欢
    • 2015-10-16
    • 2021-12-04
    • 2017-01-05
    • 2011-06-01
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-16
    相关资源
    最近更新 更多