C# 远程调试器 - 无法找到或打开 PDB 文件
Posted
技术标签:
【中文标题】C# 远程调试器 - 无法找到或打开 PDB 文件【英文标题】:C# Remote Debugger - Cannot find or open the PDB file 【发布时间】:2016-06-14 20:46:44 【问题描述】:我正在尝试根据Remote Debugging 远程调试我的应用程序(C# windows 应用程序),我在我的远程机器上安装了远程工具,说它是 RA,我添加了权限我想调试应用程序的机器,说它是B。
我在B中打开VS,点击Debug->Attach to Process...,在Transport中选择'Remote =(no authenticated),然后点击Find按钮就可以找到机器了RA。当我选择这台机器并选择我要调试的应用程序时,但是当我附加它时,有很多日志消息显示Cannot find or open the PDB file
。
既然我们需要在本地机器上调试pdb
文件,那么远程调试如何找到pdb
文件呢?或者我没有在 RA 上正确配置它?
【问题讨论】:
为什么不将 .pdb 文件与应用程序一起复制到远程位置? 我在远程机器上确实有pdb文件,我通常在远程机器本地调试。现在我尝试在另一台机器上调试,远程机器是虚拟机。 【参考方案1】:确认您可以从 B 访问位于 RA 上的 pdb 文件。第一步是在 RA 上创建 pdb 所在目录的网络共享。第二步是在 B 上打开 Windows 资源管理器并导航到该特定网络共享。例如:\\RA-MACHINE\PDB-DIR。使用正确的凭据(RA-DOMAIN\RA-USER、RA-PWD)登录并告诉它记住您的凭据以供后续登录。 pdb 文件应显示在 Windows 资源管理器中。配置调试器查找符号文件的位置,如 [here] 所述,远程调试应该可以工作。
【讨论】:
在执行了大量其他建议的solutions... 都没有奏效之后,我终于找到了这个成功的方法。但是,我绕过了直接 n/w 共享并使用了管理驱动器共享 + pdb 文件位置的完整路径。尽管如此,问题仍然很大,为什么不需要指向符号文件的标准配置会失败。【参考方案2】:根据https://msdn.microsoft.com/library/x54fht41(v=vs.100).aspx
默认情况下,调试器从以下位置加载符号文件 你的EXE位于。使用来自另一个目录或符号的符号 服务器,您必须指定 Visual Studio 的位置。
【讨论】:
我添加了一个远程文件夹作为符号文件位置。但是断点仍然被禁用。并且日志消息被更改,它说Loading disabled by Include/Exclude setting
。以上是关于C# 远程调试器 - 无法找到或打开 PDB 文件的主要内容,如果未能解决你的问题,请参考以下文章
AE+VS+c#开发-无法找到调试“Arcmap.exe“的调试信息,或者调试信息不匹配,无法查找或打开PDB文件
可以在 Visual Studio 2010 中抑制“无法找到或打开 PDB 文件”警告吗?
Visual Studio 2013 RC 中的“无法找到或打开 PDB 文件”
如何修复“无法找到或打开 PDB 文件”。在 Visual Studio 2017 中