C# 如何逐步浏览动态加载的DLL的源代码?

C# 如何逐步浏览动态加载的DLL的源代码?,c#,c++,visual-studio,visual-studio-2008,pdb-files,C#,C++,Visual Studio,Visual Studio 2008,Pdb Files,如何逐步浏览动态加载的DLL的源代码? 我有一个SLN,它是通过将BIN文件加载到Visual Studio 2008中自动创建的。它使用命令行界面功能,在这个命令行上,我可以发出一个命令来加载DLL。我加载的DLL是从源代码构建的。因此,我应该能够逐步完成这个源代码 我需要加载mdb还是告诉集成开发环境如何处理源代码?目前,我无法在源代码中放置任何断点。如果DLL已在GAC中,则断点可能无法工作。您可能必须从GAC中删除引用并重试 你检查过这个了吗 您可能需要告诉MSVC在哪里可以找到这些DL

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


我需要加载mdb还是告诉集成开发环境如何处理源代码?目前,我无法在源代码中放置任何断点。

如果DLL已在GAC中,则断点可能无法工作。您可能必须从GAC中删除引用并重试


你检查过这个了吗

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


在“工具->选项->调试->符号”下查看,并尝试将PDB所在的目录添加到对话框中。

如果您构建此dll,则应该能够构建调试符号,并将调试器指向这些文件


你必须确保PDB文件是与加载的完全相同的二进制文件建立的,否则符号不会被发现,因为它们不匹配。

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


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

删除引用DLL并再次添加它


希望有帮助。

如果要调试两个进程,而一个进程调用另一个进程,该怎么办?换句话说,如何同时使用两个VisualStudio会话?我认为我遇到的问题是因为我从命令行界面加载了一个可执行文件,而dll是一个可执行文件加载的进程。