Program debug and launch support

The resources plug-in in the Eclipse platform allows you to manage a set of source files for a program and compile them using an incremental project builder.  Plug-ins can define new builders that handle special resource types, such as source files for a particular programming language.  Once an executable program is built with your plug-in's builder, how can you make sure that it gets invoked correctly?

The org.eclipse.debug.core plug-in provides the API that allows a program to define a configuration for launching a program.  The program can be launched in different modes. For example, it could be launched for regular execution, for debugging, for profiling, or any other mode defined by your plug-in.  The Eclipse Java development tooling (JDT) uses the platform debug support to launch Java VM's and the Java debugger.  

The org.eclipse.debug.ui plug-in includes support for user configuration of launch parameters and utility classes that ease the implementation of powerful debuggers.

There are some shared concepts in launching and debugging programs that are implemented in the platform debug support.  However, the best way to understand how to use the platform debug support is to study a robust concrete implementation of launching and debugging, such as the JDT launching and debug tools.  We'll review the major concepts of the platform debug support in the context of the JDT concrete implementation.