We recommend using Visual Studio 2017
This documentation is archived and is not being maintained.

Debugger.CurrentProgram Property

Sets or gets the active program.

Namespace:  EnvDTE
Assembly:  EnvDTE (in EnvDTE.dll)

Program CurrentProgram { get; set; }

Property Value

Type: EnvDTE.Program
The active Program.

CurrentProgram sets or returns the active Program. The active program is the program that defines the data displayed by the debugger. Although the debugger supports debugging more than one process at a time, only one process can be active at any given time. See <PAVE OVER> 12/13 Debugging Multiple Processes for more information.

The following example demonstrates how to use the CurrentProgram property.

To test this property:

  1. Open the target application. Run the add-in. No program is being debugged.

  2. Set a breakpoint in the target application. Run the application in the debug mode.

  3. When the program stops on the breakpoint, run the add-in. The program is being debugged.

public static void CurrentProgram(DTE dte)
{
    // Setup the debug Output window.
    Window w = (Window)dte.Windows.Item(EnvDTE.Constants.vsWindowKindOutput);
    w.Visible = true;
    OutputWindow ow = (OutputWindow)w.Object;
    OutputWindowPane owp = ow.OutputWindowPanes.Add("Current Program Test");
    owp.Activate();

    owp.OutputString("Current Program Info: ");
    EnvDTE.Program program = dte.Debugger.CurrentProgram;
    if(program == null)
        owp.OutputString("No program is being debugged");
    else
        owp.OutputString("Program Name = " + program.Name);
}

Show: