Visual Studio 2008 ASP.Net调试:删除的僵尸断点会重新出现

15
在Visual Studio 2008中调试ASP.Net网站时,我在代码后端页面中设置了断点。刷新页面或提交以调用方法,断点被命中。然后我删除断点并继续执行。我更改了代码后端页面并保存。我再次提交或刷新,删除的断点又回来了!它再次被命中,我再次删除它。我已经尝试了删除、禁用等操作,但都无法解决当我更改页面后它就重新出现的问题。这非常令人恼火且低效。唯一找到的方法是使用“调试”菜单中的“删除所有断点”选项,这明显不太理想。我已经能够在其他开发者的机器上重现这个问题。这到底是怎么回事?这是设计问题吗?还是VS中的一个错误?如何防止这些僵尸断点复活?

1
可能是 如何删除 Visual Studio 断点的问题 的重复。 - womp
5个回答

3

这可能是一个bug。要么使用“删除所有断点”(Shift+F9)或尝试在停止(而不是运行)模式下删除断点。


2
这不是一个错误,很可能是多重断点。请参见http://connect.microsoft.com/VisualStudio/feedback/details/391642/permanently-remove-a-breakpoint-in-visual-studio-during-debugging。 - womp

2
这是@sgiffinusa提供的链接所描述的内容:它是挂起断点和绑定断点之间的区别。在调试器附加之前,它是一个挂起的断点,一旦调试器被附加,它可能有多个生成的代码访问它,并且调试器将断点绑定到进入该代码的每个路径上。我不太明白...但这似乎就是发生的事情。 :)
一个可行的解决方法是,不要使用鼠标点击边缘来切换断点,而是使用F9键(或您映射的任何其他键)将断点关闭,然后再按一次F9键将其打开,最后再按一次F9键永久删除它。
我不知道为什么会这样,但在我们公司里确实有效。

2
这是因为它的子断点仍在生效:MSDN文章
你有以下几个选项:
- 停止调试会话,然后通过点击红色标记来删除断点。
- 在断点窗口列表中查找断点,然后从中删除。
- 使用宏在调试会话之间清除子断点,然后通过单击标记删除。[1](有点奇怪,但是感觉很好用。)
- 使用宏删除当前选定行上的断点。[2]

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

1

我认为这是设计上的考虑。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接