Visual studio 2015 从GAC远程调试程序集
我有一个在GAC中注册的程序集,用于Win10机器上的x86。该程序集是为.NET4.5编译的。现在我正在尝试远程调试这个程序集,以便确定客户对它的问题 因此,我从程序集所在的主机启动了msvmon.exe。我还在调试机器上安装了相应的pdb文件,并适当设置了由调试-->选项-->调试-->符号指示的路径,如下面的imagbe所示 现在,当我在“附加到进程”窗口中键入msvmon运行的主机名和端口,并在源代码中添加断点时,它不会被命中。它特别指出“当前文档未加载任何符号” 另一方面,当我尝试调试一个不在GAC中的程序集时,我可以很容易地调试它——即使我没有指定pdb文件的路径(我从第一个映像中取消选中pdb位置以验证这一点)。因此,我很确定没有网络相关的问题Visual studio 2015 从GAC远程调试程序集,visual-studio-2015,remote-debugging,Visual Studio 2015,Remote Debugging,我有一个在GAC中注册的程序集,用于Win10机器上的x86。该程序集是为.NET4.5编译的。现在我正在尝试远程调试这个程序集,以便确定客户对它的问题 因此,我从程序集所在的主机启动了msvmon.exe。我还在调试机器上安装了相应的pdb文件,并适当设置了由调试-->选项-->调试-->符号指示的路径,如下面的imagbe所示 现在,当我在“附加到进程”窗口中键入msvmon运行的主机名和端口,并在源代码中添加断点时,它不会被命中。它特别指出“当前文档未加载任何符号” 另一方面,当我尝试
因此,我想知道当程序集在GAC中重新注册时,VS在哪里查找pdb文件。我通过将pdb文件也放入调试机器的GAC中来解决这个问题 因此,即使pdb文件的路径由调试-->选项-->调试-->符号指示,这似乎也不适用于GAC中的程序集。必须将pdb文件放在部件旁边。通常我们甚至不需要调试机器上的程序集。然而,我不确定这是否也适用于这种情况
无论如何,如果您在本地调试,这也适用。当程序集位于GAC中时,其pdb文件也需要保留在GAC中 这取决于组件是如何构建的。发布版本的几率较低,但使用默认设置,它仍会记录PDB的原始位置。只要看一看,使用调试>窗口>模块,在列表中找到程序集。右键单击>符号加载信息。@HansPassant给了我一个想法。因此,我尝试手动将pdb路径设置为与图1所示完全相同的路径。这导致错误“在此文件夹中找不到匹配的符号文件”,尽管它在那里。现在,当我将完全相同的pdb从该文件夹复制到GAC中时,调试器可以解析路径并加载文件。