# Debugger

The Java development toolkit (JDT) includes a debugger that enables you to detect and diagnose errors in your programs running either locally or remotely.

The debugger allows you to control the execution of your program by setting breakpoints, suspending launched programs, stepping through your code, and examining the contents of variables.

The debugger has a client/server design so you can debug programs running remotely on other systems in the network as well as programs running locally on your workstation. The debug client runs inside the workbench on your workstation. The debugger server runs on the same system as the program you want to debug. This could be a program launched on your workstation (local debugging) or a program started on a computer that is accessible through a network (remote debugging).

### Related concepts

Java development tools (JDT)
Breakpoints
Remote debugging
Local debugging

### Related tasks

Adding breakpoints
Changing debugger launch options
Connecting to a remote VM with the Remote Java application launch configuration
Disconnecting from a VM
Evaluating expressions
Launching a Java program
Preparing to debug
Resuming the execution of suspended threads
Running and debugging
Suspending threads

### Related references

Debug preferences
Debug view
Run menu actions
Run and Debug toolbar actions