gpt4 book ai didi

c - SymFromAddr 与给定地址的调试器符号不匹配

转载 作者:行者123 更新时间:2023-12-05 07:49:37 26 4
gpt4 key购买 nike

在我的 Windows 应用程序中,我使用 MinHook ( https://github.com/TsudaKageyu/minhook ) Hook 了 malloc,并且我使用 CaptureStackBacktrace 和 SymFromAddr 来获取内存泄漏的符号。 SymFromAddr 对我的可执行文件中的地址可靠地工作,但是当报告来自 DLL 的地址的符号信息时,结果经常是不正确的。 SymFromAddr 不报告错误,它只是返回错误信息。不过,调试器能够获得正确的信息(我可以将鼠标悬停在我传递给 SymFrommAddr 的地址上,Visual Studio 会正确报告模块和函数名称)。我认为我的问题可能是错误的符号搜索路径,因此我更新了对 SymInitialize 的调用以包含 MS 符号服务器和我的可执行文件的路径,但这并没有解决问题。

Visual Studio 调试器是否使用 dbghelp 系统?有没有人知道为什么调试器和 SymFromAddr 不一致?

最佳答案

调用SymInitialize()时,第二个参数必须与此设置相同:

Visual Studio > 工具菜单 > 选项 > 调试 > 符号 > 在此目录中缓存符号

此外,您应该选中同一窗口上的“加载所有模块”框。

关于c - SymFromAddr 与给定地址的调试器符号不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37176520/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com