假设我有10个断点,但只想清除其中一个而不是其他9个。
如果我关闭该断点,则在下次启动应用程序时它会重新出现。目前我所知的唯一永久性移除此断点的方法是清除所有断点,但我并不想这样做,因为我需要重新设置其他9个断点。
在任何版本的VS中有更好的方法吗?
假设我有10个断点,但只想清除其中一个而不是其他9个。
如果我关闭该断点,则在下次启动应用程序时它会重新出现。目前我所知的唯一永久性移除此断点的方法是清除所有断点,但我并不想这样做,因为我需要重新设置其他9个断点。
在任何版本的VS中有更好的方法吗?
如果您正在调试且断点是多绑定的,则在更改它时,该断点的状态只会暂时更改。这实际上是Visual Studio的一个功能。请参见此处的最后一篇帖子。
如果您未进行调试并删除该断点,则不会再出现。或者,正如其他人建议的那样,可以使用断点管理窗口永久删除它。
如果您想使用 F9 快捷键或点击红色符号来删除断点,则该断点必须是无子级的。否则,该断点将通过其生存的子断点保留。(当您在调试期间设置断点时,可能会形成子断点。)
您可以查看这个问题 "禁用/删除子断点?" ,获取一个用于删除子断点的宏。我认为您不应该在调试会话期间调用该宏,因为这可能导致无法触发您的断点。
以下代码可用作宏,以删除当前选定行上的断点。(请注意,当断点被命中时,Visual Studio会自动选择该行。)
Sub RemoveBreakPoint()
Dim debugger As EnvDTE.Debugger = DTE.Debugger
Dim children As EnvDTE.Breakpoints
Dim sel As Integer = DTE.ActiveDocument.Selection.ActivePoint.Line
For Each bp As EnvDTE.Breakpoint In debugger.Breakpoints
If bp.File <> DTE.ActiveDocument.FullName Then
Continue For
End If
For Each bpc As EnvDTE.Breakpoint In bp.Children
If bpc.FileLine = sel Then
bp.Delete()
Exit For
End If
Next
Next
End Sub
您可以为其分配一个键盘快捷方式以便于访问。(工具 > 选项 > 环境 > 键盘。)