How can I use debugbreak() in C#?

后端 未结 5 1162
臣服心动
臣服心动 2020-12-03 00:53

What is the syntax and which namespace/class needs to be imported? Give me sample code if possible. It would be of great help.

相关标签:
5条回答
  • 2020-12-03 01:32

    I also like to check to see if the debugger is attached - if you call Debugger.Break when there is no debugger, it will prompt the user if they want to attach one. Depending on the behavior you want, you may want to call Debugger.Break() only if (or if not) one is already attached

    using System.Diagnostics;
    
    //.... in the method:
    
    if( Debugger.IsAttached) //or if(!Debugger.IsAttached)
    {
      Debugger.Break();
    }
    
    0 讨论(0)
  • 2020-12-03 01:34

    The answers from @Philip Rieck and @John are subtly different.

    John's ...

    #if DEBUG
      System.Diagnostics.Debugger.Break();
    #endif
    

    only works if you compiled with the DEBUG conditional compilation symbol set.

    Phillip's answer ...

    if( Debugger.IsAttached) //or if(!Debugger.IsAttached)
    {
      Debugger.Break();
    }
    

    will work for any debugger so you will give any hackers a bit of a fright too.

    Also take note of SecurityException it can throw so don't let that code out into the wild.

    Another reason no to ...

    If no debugger is attached, users are asked if they want to attach a debugger. If users say yes, the debugger is started. If a debugger is attached, the debugger is signaled with a user breakpoint event, and the debugger suspends execution of the process just as if a debugger breakpoint had been hit.

    from https://msdn.microsoft.com/en-us/library/system.diagnostics.debugger.break(v=vs.110).aspx

    0 讨论(0)
  • 2020-12-03 01:38

    Put the following where you need it:

    System.Diagnostics.Debugger.Break();
    
    0 讨论(0)
  • 2020-12-03 01:42

    http://msdn.microsoft.com/en-us/library/system.diagnostics.debugger.break.aspx

    #if DEBUG
      System.Diagnostics.Debugger.Break();
    #endif
    
    0 讨论(0)
  • 2020-12-03 01:47

    you can use System.Diagnostics.Debugger.Break() to break in a specific place.. this can help in situations like debugging a service.

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