## Debugging a program

When you define a launch configuration for running a program, you can specify which modes (run, debug, profile, etc.) are supported by your program. If you support debug mode, then you need to implement a debug model and UI that allow users to interact with your programs while they are under debug. The core platform debug plug-in provides support for:

- a generic debug model
- debug events and listeners
- breakpoint management
- expression management

The debug UI plug-in provides a framework for showing your debug model in the UI. It also includes utility classes for implementing common UI tasks.

Since it's difficult to discuss generic debugging in any meaningful detail, we'll review the platform debug model and UI classes from the perspective of the Java debugger.

How to Write an Eclipse Debugger provides a start to finish example for building a debugger using a simple push down automata (PDA) assembly language as an example.