鉴于以下内容:
我想这样做:将DLL加载到某些C ++代码中,然后在CPU级别上执行函数代码以找出它的确切功能。
你能否告诉我从哪里开始以及如何完成这项工作?我想DLL可能需要一些特定于Firefox的初始化才能调用我想调试的函数。这可以用Firefox SDK完成,没有DLL的源代码和调试信息吗?或者我可以成功地"赤裸裸地"加载DLL,找到 - 相当简单 - 功能(如何?)的入口点并调用它?
感谢任何提示。
答案 0 :(得分:0)
如果没有pdb文件或源代码,则很难调试dll文件,因为调试器从PDB文件加载调试信息并使用它来查找符号或关联程序源代码的当前执行状态。 Visual Studio使用PDB文件作为主要文件格式,以便在调试期间调试信息。如果没有这些文件,则无法调试该库。
更新
我们使用LoadLibrary()函数动态地将dll加载到一个项目,但是如果要进入dll文件,它确实需要pdb文件。一个简单的示例是您可以创建一个pdb文件并将其放在与一个简单的自定义dll库项目相同的文件夹中。我认为Visual Studio会自动搜索目录并加载它们,您可以在Debug模块窗口中找到相关信息。
以下情况与您的问题不同,但它也告诉我们,如果dll文件真的被一个项目/进程调用,它会加载pdb文件: