Compartilhar via


Debugger.Stop(Boolean) Method

Definition

Stops debugging, terminating, or detaching from all attached processes.

void Stop(bool WaitForDesignMode = true);
[System.Runtime.InteropServices.DispId(8)]
public void Stop (bool WaitForDesignMode = true);
[<System.Runtime.InteropServices.DispId(8)>]
abstract member Stop : bool -> unit
Public Sub Stop (Optional WaitForDesignMode As Boolean = true)

Parameters

WaitForDesignMode
Boolean

Set to true if the debugging session should stop only when it reaches design mode. Set to false if you intend to stop debugging, but you need to perform other tasks in the macro even before the debugger enters Design mode.

Attributes

Examples

The following example demonstrates how to use the Stop method.

public static void Stop(DTE dte)  
{  
    EnvDTE.Debugger debugger = (EnvDTE.Debugger)dte.Debugger;  
    debugger.Stop(true);  
}  
Shared Sub Stop(ByRef dte As EnvDTE.DTE)  
    dte.Debugger. Stop(True)  
End Sub  

' WaitForDesignMode is true  
Sub StopDebuggingAndNotifySync  
    DTE.Debugger.Stop(True)  
    MsgBox("Debugger has been stopped, for sure.")  
End Sub  

' WaitForDesignMode is false  
Sub StopDebuggingAndNotifyAsync  

    DTE.Debugger.Stop(False)  

     ' Depending on how long it takes to stop debugging,   
     ' the environment may or may not yet be in Design mode.  
    If DTE.Debugger.CurrentMode <> dbgDebugMode.dbgDesignMode  
        MsgBox("Debugger still stopping")  
    Else  
        MsgBox("Debugger has been stopped")  
    End If  
End Sub  

Note

Macros are run on the main thread of Visual Studio. The following code does not work and the macro loops indefinitely, because the integrated development environment (IDE) never has a chance to enter Design mode. Instead, you should resort to a separate thread or pooling mechanism.

' Bad Code Example.  
Sub StopDebuggingAndWaitForDesign  
    DTE.Debugger.Stop(False)  

    While DTE.Debugger.CurrentMode <> dbgDebugMode.dbgDesignMode  
        System.Threading.Thread.Sleep(50)  
    End While  

    MsgBox("Debugger has been stopped")  

End Sub

Remarks

Stop stops debugging and terminates the attached process. See Stopping Execution for more information.

Applies to