debugging 使用Visual Studio 2010远程调试C# .dll --获取.PDB文件不匹配--但它绝对是从构建

v8wbuo2f  于 2023-03-23  发布在  C#
关注(0)|答案(3)|浏览(178)

使用Visual Studio 2010远程调试一个C# .dll --获取.PDB文件不匹配--任何还没有它绝对是从构建开始的。
新信息:此问题未解决。我有三台计算机:a)XP sp3,B)XP sp3和c)Vista sp1,我可以在a)和c)上构建最简单的测试程序,并使用模块窗口--选择我的test 5. exe并加载创建时创建的.pdb--相同日期相同时间相同文件夹...然而Visual Studio说“在此文件夹中未找到匹配的符号文件”--所有努力都是为了加载正确的。pdb失败,投诉不匹配....可能是:a)远程于B)或c)-或- c)远程于a)或b)--- HELP!
我已经隐式和显式地设置了.PDB的位置-这无关紧要。
我已将符号设置设置为取消选中源文件必须完全匹配。
我没有看到任何错误……
只是:

C:\POSWIN\DBS.KGW.tst7.pdb: Cannot find or open the PDB file.
C:\Projects\SP\DBS.KGW.tst7STUB\DBS.KGW.tst7\obj\Debug\DBS.KGW.tst7.pdb: PDB does not match image.
C:\Projects\SP\DBS.KGW.tst7STUB\DBS.KGW.tst7\bin\Debug\symbols\DLL\DBS.KGW.tst7.pdb: Cannot find or open the PDB file.
C:\Projects\SP\DBS.KGW.tst7STUB\DBS.KGW.tst7\bin\Debug\DLL\DBS.KGW.tst7.pdb: Cannot find or open the PDB file.
C:\Projects\SP\DBS.KGW.tst7STUB\DBS.KGW.tst7\bin\Debug\DBS.KGW.tst7.pdb: PDB does not match image.
C:\Projects\SP\DBS.KGW.tst7STUB\DBS.KGW.tst7\bin\Debug\MicrosoftPublicSymbols\symbols\DLL\DBS.KGW.tst7.pdb: Cannot find or open the PDB file.
C:\Projects\SP\DBS.KGW.tst7STUB\DBS.KGW.tst7\bin\Debug\MicrosoftPublicSymbols\DLL\DBS.KGW.tst7.pdb: Cannot find or open the PDB file.
C:\Projects\SP\DBS.KGW.tst7STUB\DBS.KGW.tst7\bin\Debug\MicrosoftPublicSymbols\DBS.KGW.tst7.pdb: Cannot find or open the PDB file.
C:\WINDOWS\symbols\DLL\DBS.KGW.tst7.pdb: Cannot find or open the PDB file.
C:\WINDOWS\DLL\DBS.KGW.tst7.pdb: Cannot find or open the PDB file.
C:\WINDOWS\DBS.KGW.tst7.pdb: Cannot find or open the PDB file.
nr7wwzry

nr7wwzry1#

几点建议:

  • 在visual studio中,当你连接到进程时,打开模块调试窗口,Ctrl+DM(或菜单中的Debug-〉Windows-〉Modules),找到导致问题的dll,右键单击它,选择Load Symbols From,然后选择Symbol Path,找到正确的pdb文件,看看它是否加载。
  • 如果您的应用程序是asp.net,那么您可以尝试清除临时文件夹,因为它有时会导致类似于您的问题。该文件夹应该位于如下位置:

bootdrive:\%windir%\Microsoft.NET\Framework\v2.0.5 0727\Temporary ASP.NET
取决于你的.net版本。

6jygbczu

6jygbczu2#

解决方案是,对于远程调试连接,有两种连接方式,授权和未授权...对于防火墙问题,我默认为未授权。对于VS 2010 C#解决方案,投诉仅仅是.PDB不匹配。用尽了我能想到的所有选项,我去用C++复制了我的简单测试解决方案,接口是不同的,更好的,有一个警告,因为你设置这个,你不会得到符号,除非你是在一个授权的连接!!--一旦我克服了防火墙的问题--并通过与正在调试的远程PC的授权连接查看我的符号,我将发布确认......顺便说一句,通常会警告说,当您通过授权连接登录时,主机和被调试计算机的用户ID和密码必须相同,此外,被调试计算机上的用户必须具有添加到其用户的“作为服务登录”权限……

xzabzqsa

xzabzqsa3#

我也遇到过同样的问题,解决方法很简单。
在我的例子中,我有两个VS解决方案,第一个是主应用程序与.exe和第二个.dll插件项目。当我试图调试dll项目时,我得到了一个pdb不匹配错误(在模块窗口中)。原因是pdb实际上根本不匹配,因为:
当我测试第一个解决方案时,我将.dll文件从第二个解决方案复制到带有.exe文件的调试文件夹中。
然后,当我试图调试第二个(.dll)解决方案,它是使用.exe文件从第一个解决方案,也在该目录中的.dll文件,但该.dll是过时的,并不符合新的pdb文件。因此,复制一个新的.dll文件从第二个项目到.exe目录解决了我的问题。

相关问题