如何获取dll中某个地址下的函数名

问题描述 投票:0回答:1

我收到此错误消息

[...]
# C  [FTDIIO.dll+0x1efb]
[...]

我有dll,它是本机的、非托管代码和源代码。我想知道函数、符号(甚至代码线)和这个特定的地址。

我不确定它是否重要,但该 dll 由 JNI Java 应用程序使用,并为 dll 函数提供自定义(自动生成)包装类。

如何找到该特定地址处的函数、符号或代码线?

c visual-studio debugging visual-c++ dll
1个回答
0
投票

如果您使用 Visual Studio 并且有 DLL 的调试信息,您可以使用 DbgHelp 浏览器来识别符号名称、文件名和行号。

加载 DLL,然后从 PDB 文件中读取调试信息。

现在,从“查询”菜单中选择“使用 DLL 相对地址查找符号...”,然后在编辑字段中输入 0x1efb 偏移值(示例中的值)(十六进制偏移量以 0x 开头),然后单击“查找符号”。如果找到符号,显示屏将导航以使该符号可见,并突出显示它。

https://www.softwareverify.com/product/dbghelp-browser/

如果您使用 Delphi(TDS 调试信息)或生成 DWARF 调试信息的编译器,或者有 MAP 文件,网站上还提供其他工具来从中获取符号、文件名和行。

免费工具。

免责声明:我编写了这个工具。

© www.soinside.com 2019 - 2024. All rights reserved.