Enable breakpoint B if breakpoint A has been hit

前端 未结 2 468
不知归路
不知归路 2021-01-31 18:58

I\'m often find myself setting a breakpoint A somewhere in the code and manually enabling one or more breakpoints when this breakpoint is hit. A typical case is when I\'m debugg

相关标签:
2条回答
  • 2021-01-31 19:20

    This is about the best I think you could do, but it seems too big of a hack to even try, because it involves adding a variable...

    string breakpointToStopOn = string.Empty;
    Console.WriteLine("HERE"); // You can set breakpoint A here, 
                               // with a condition (right click on the breakpoint, then selectCondition),
                               // that sets breakpointToStopOn = "A"
    Console.WriteLine("B"); // and you can set your breakpoint here with this condition
                            // (breakpointToStopOn == "A");  
    

    You won't actually be able to stop on the Console.WriteLine("HERE") line, but you could enable or disable the breakpoint, which would in effect enable the other breakpoint.

    Beware though, conditional breakpoint statements will seriously degrade performance of your app while debugging.

    0 讨论(0)
  • 2021-01-31 19:27

    You can get the dependent breakpoints even without changing the code, by using some global storage to hold the marker that will enable dependent breakpoint.

    One of the most accessible storages that I've found is app domain custom properties. They can be accessed by System.AppDomain.CurrentDomain.GetData and SetData methods.

    So on first breakpoint you define a "when hit" setting with :

    {System.AppDomain.CurrentDomain.SetData("break",true)}

    breakpoint condition

    On the dependent breakpoint, set hit condition to:

    System.AppDomain.CurrentDomain.GetData("break") != null

    0 讨论(0)
提交回复
热议问题