'DebugBreak() equivalent in C#

In C# is there any statement equivalent to DebugBreak()? I want to invoke the debugger when ever a particular condition is met.



Solution 1:[1]

Concerning the other answers, I prefer using Debugger.Launch().

If the application is not already running in a debugger, Launch() will call up the debugger dialog allowing you to attach Visual Studio (or another debugger) to the process. However, if you are already debugging, it will sail right past the Debugger.Launch() call. Break(), on the other hand, will act as a breakpoint - breaking every time it hits that point (and invoking the debugger dialog if the process has not been attached).

Be VERY careful not to leave either statement in your code. Sending code with Debugger calls out to production can halt your application or create very hard to track down errors (bad experience last month).

Solution 2:[2]

System.Diagnostics.Debugger.Break();

//Lauches the JIT debug window
System.Diagnostics.Debugger.Launch();

This is particularly useful when debugging a service as you get the Just In Time debugger window and can then select the visual studio window to debug the service in.

Solution 3:[3]

Maybe Debugger.Break

System.Diagnostics.Debugger.Break();

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Gama11
Solution 2 Gama11
Solution 3 PaulB