# Program debug and launch support

The resource plug-ins in the Eclipse platform allow you to manage a set a 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 for regular execution or in debug mode, depending on the capabilities of 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 order to provide a roadmap for studying a concrete implementation.

For a detailed explanation of how to define and develop custom launch configurations, see We Have Lift-off: The Launching Framework in Eclipse.