【问题标题】:Visual Studio 2008 ASP.Net Debugging Zombie Breakpoints Come Back After Being DeletedVisual Studio 2008 ASP.Net 调试僵尸断点被删除后又回来了
【发布时间】:2010-06-30 19:45:33
【问题描述】:

在 Visual Studio 2008 中调试 ASP.Net 网站时,我在代码隐藏页面中设置了一个断点。我刷新页面或提交调用方法,断点命中。然后我删除断点并继续执行。我对代码隐藏页面进行了更改并保存。我再次提交或刷新,删除的断点又回来了!它再次被击中,我再次删除它。我试过删除,禁用,如果我对页面进行更改,它会一直返回。这非常烦人且效率低下。我发现使断点永久消失的唯一方法是使用 Debug 菜单 Delete all breakpoints 项,这显然不太理想。我也能够在其他开发人员的机器上重现这一点。这里发生了什么?这是设计使然吗?这是VS中的错误吗?如何防止这些僵尸断点复活?

【问题讨论】:

标签: asp.net visual-studio-2008 debugging breakpoints


【解决方案1】:

这可能是一个错误。使用删除所有断点 (Shift+F9) 或尝试在停止(非运行)模式下删除断点。

【讨论】:

【解决方案2】:

这是因为它的子断点仍然存在:MSDN article

您的选择是:
- 停止调试会话,然后通过单击其红色字形删除断点。
- 在断点窗口列表中找到断点并从那里删除它。
- 使用宏清理调试会话之间的子断点,然后通过单击字形删除。[1](古怪,但当它工作时感觉很好。)
- 使用宏删除当前选定行上的断点。[2]

【讨论】:

    【解决方案3】:

    正如@sgiffinusa 的链接所描述的那样:这是挂起断点和绑定断点之间的区别。在附加调试器之前,它是一个挂起的断点,一旦附加了调试器,它可能有多个生成的代码访问它,并且调试器将断点绑定到该代码的每个路径。我不明白......但这似乎就是发生的事情。 :)

    似乎对我有用的一种解决方法是,不是通过单击边距用鼠标切换断点,而是使用 F9 键(或您映射到的任何键)来关闭断点,然后再次按 F9 将其重新打开,然后再次按 F9 以永远摆脱该死的东西。

    我不知道为什么会这样,但在这个办公室里可以。

    【讨论】:

      【解决方案4】:

      我也遇到过这个问题。如果在删除断点之前停止调试(单击停止),它应该会永久消失。

      【讨论】:

        【解决方案5】:

        我认为这是设计使然。

        在调试模式下删除断点,它是临时的。 删除设计模式下的断点及其永久。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-01-13
          • 1970-01-01
          • 2021-08-24
          • 2021-07-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多