【问题标题】:Is it possible to set break points when remote debuging with Visual Studio?使用 Visual Studio 进行远程调试时是否可以设置断点?
【发布时间】:2010-12-24 15:23:18
【问题描述】:

我能够连接到远程机器并调试并查看源代码,但是当我设置断点时,Visual Studio 不会中断它。

那么有什么需要做的吗?
还是在远程调试时根本无法使用断点?

【问题讨论】:

    标签: c# visual-studio remote-debugging


    【解决方案1】:

    是的。当连接到远程站点时,您需要确保 PDB(带有行信息的调试信息)存在并加载到调试器中,因为没有它,调试器无法将源代码行与字节码偏移量相关联,而这是设置断点所必需的。

    【讨论】:

    • 你说得对,它应该可以工作,但 PDB 不需要位于远程计算机上。远程调试监视器不需要访问 PDB。 PDB 需要在运行 Visual Studio 的机器上 - Visual Studio 使用 PDB 从源代码行映射到地址,并将这些地址传递给远程调试监视器。
    • 远程构建必须是 DEBUG 构建还是可以是 RELEASE 构建?
    • 对,这其实是我想说的,但是打错了。固定的。我不明白为什么我被否决了,因为基本信息仍然正确。
    • @j0rd4n:只要创建了 PDB 文件,两者都可以工作,但发布版本已经过优化,因此某些源代码可能被编译为无法再精确映射到源代码的代码。跨度>
    【解决方案2】:

    快速回答是,但是有许多不同的事情可能会阻止触发断点。很久以前我发布了这个清单作为另一个问题的答案,现在它可能会对你有所帮助:

    Why does my C# debugger skip breakpoints?

    特别检查断点的图形是否是实心的(表明如果到达断点就应该命中)或者断点是否只是一个空圆圈,旁边有一个小感叹号 - 如果你得到感叹号然后检查当您将鼠标悬停在它上面时得到的工具提示,它可能会告诉您问题所在。

    最后,调试 RELEASE 构建是完全可能的,但是您需要确保在构建时生成符号 - 这些符号可以在外部文件(.pdb)中,或者有时它们可​​以嵌入到组装本身(虽然我自己从来没有这样做过)

    【讨论】:

      【解决方案3】:

      是的,你可以。使用 F9 创建断点。远程调试时请注意以下事项..

      远程调试器不命中断点有两个原因

      1. 符号错误。

      2. 在调试时使用了错误的 .Net 框架(您可以在 Visual Studio 的“附加到进程”窗口中选择)。

      【讨论】:

        猜你喜欢
        • 2010-12-07
        • 2011-05-13
        • 2011-07-25
        • 1970-01-01
        • 2014-05-08
        • 2011-06-13
        • 2019-06-04
        • 2019-06-11
        • 2010-09-22
        相关资源
        最近更新 更多