## Launching a program

The platform debug plug-ins allow your plug-in to extend the platform so that your partiticular type of program can be launched from the workbench, obtaining input from the user if necessary. A unique type of program that can be launched in the platform is called a launch configuration type. The class ILaunchConfiguration is used to describe a type of configuration. A launch configuration keeps a set of named attributes that can be used to store data specific for a particular kind of launcher.

For each launch configuration type, there are different modes in which the configuration can be launched. The platform defines modes for running, debugging, or profiling a program defined by a particular configuration. Plug-ins are free to implement any or all of these launch modes for their particular launch configuration, or define new launch modes for any launch configuration.

Plug-ins that contribute additional types of launchers do so by providing an ILaunchConfigurationDelegate (or ILaunchConfigurationDelegate2) that knows how to launch a program given the expected type and mode for launch configuration. Once the program is launched, an ILaunch object is used to represent the launched session. This object can be queried for information such as running processes, debug session information, and source code location. A launch knows the configuration that was used to create it.

Users interact with a launch configuration dialog to set up the parameters for different types of launches. These configurations can be stored in a file to be shared with other users or stored locally in the workspace.