2011-02-16 36 views
3

如何逐步完成即时加载的DLL的源代码? 我有一个SLN是通过将BIN文件加载到Visual Studio 2008中自动创建的。它使用命令行界面功能,并且在此命令行上,我可以给出一个命令来加载DLL。我加载的DLL是从源代码构建的。所以我应该能够通过这个源代码。如何逐步完成即时加载的DLL的源代码?

我是否需要以某种方式加载mdb或以某种方式告诉集成开发环境如何处理源代码?目前,我无法在源代码中添加任何断点。

回答

1

您可能需要告诉MSVC在哪里可以找到这些DLL的PDB文件。 PDB允许调试器查找哪一行源代码与哪个字节的程序集一致。

查看Tools-> Options-> Debugging-> Symbols,然后尝试将PDB所在的目录添加到对话框中。

6

如果你建立这个dll,那么你应该能够建立调试符号,和调试器指向这些文件

Debugging symbols page

你必须确保该pdb文件是针对确切建与加载的二进制文件相同,否则符号将不会被找到,因为它们不匹配。

+0

如果你想调试两个进程而一个进程调用另一个进程呢?换句话说,我该如何在同一时间使用两个Visual Studio会话?我认为我遇到的问题是因为我从我的命令行界面加载可执行文件,并且dll是可执行加载的进程。 – xarzu 2011-02-16 23:54:49

2

如果动态加载DLL(例如,通过C++中的LoadLibrary),则符号在加载DLL之前不会被加载。在加载DLL的调用之后中断,然后加载DLL源并在其中设置断点。当加载DLL的符号时,您将在Visual Studio的输出窗格中看到消息。

您还可以通过指定将在调试器选项中加载DLL的EXE来调试DLL解决方案。然后Visual Studio会知道EXE可能会加载DLL并提前加载符号。

0

删除引用dll并再次添加它。

希望它有帮助。