Search code examples
c#.netvisual-studiobreakpointsvisual-studio-debugging

Disable/remove child Breakpoints?


I'm debugging an ASP.NET Website with C# in Visual Studio. When I set a breakpoint (during debug), over time, the created breakpoint will accumulate many child breakpoints. (See here.)
Now, sometimes when I remove a breakpoint by clicking the red glyph, the breakpoint will still be hit the next time the line is executed, because the child breakpoints persisted.

Removing the breakpoint in the breakpoint window will resolve the problem, but it's annoying to find the correct breakpoint(s) when you have many set. Also, the removal of a breakpoint with many children is quite a slow operation.

So to get to the question, can I disable this creation of child breakpoints, or is there a way to quickly remove all children?
Alternative solutions are appreciated!


Please note that this isn't a duplicate of this: Question on how to remove a Visual Studio Breakpoint, because I'm asking how to deal with the child breakpoints. (Although our intended goal is the same.)


Solution

  • The following code can be used as a macro to remove all the child breakpoints.

    Sub RemoveChildBreakpoints()
        Dim i As Integer
        Dim len As Integer
        Dim debugger As EnvDTE.Debugger = DTE.Debugger
        Dim children As EnvDTE.Breakpoints
        For Each bp As EnvDTE.Breakpoint In debugger.Breakpoints
            children = bp.Children
            len = children.Count
            For i = len To 1 Step -1
                children.Item(i).Delete()
            Next
        Next
    End Sub
    

    It's still insanely slow if you have many breakpoints, so it's best to do run it on a regular basis if you're having a problem with child breakpoints.