# Debugging Properties

Several debugging options can be set on a project scope. The debugging options for each project in an application are independent, and are not set on an application basis.

Debugging properties for a project can be set on the Project Properties dialog box. To change them, pull up the project properties by either right-clicking the project folder in the Application tab and selecting Properties from the context menu, or by going to Tools-->Project Properties-->[Project_Name], then select Debugger in the pane on the left.

Alternatively, project debugging properties can be set by editing the WORK configuration file associated with the project.

Some project debugging properties apply only to specific types of projects.

## Smart Debugging

Smart debugging lets you focus on debugging your code and not platform code. When you step through code, you stay in your own code. When smart debugging is enabled, you can specify classes that the debugger will automatically step through. Typically, the filtered classes are part of the WebLogic Platform. For example, if you step into a method that's part of WebLogic Server and that method eventually calls your own code, the debugger will step directly into your code. For web application projects, this should almost always be left on.

Smart debugging is enabled by default, and a default list of classes is generated automatically. You can disable filtering on parts of the class list by checking or unchecking the group of classes in the debugging properties dialog. For example, if you uncheck XML classes, the debugger will step into platform classes that support XML.

With version 8.1 SP2 or higher, you can add, remove, and edit the class list. The asterisk (*) wildcard can be used to specify packages and subpackages.

## Build Before Debugging

This option specifies whether the project should be rebuilt before it is run in the debugger. For web applications, only the current file is rebuilt before running. For Java projects, the entire project is built before running.

By default, the Build before debugging option is enabled.

## Pause All Threads After Stepping

This option specifies which threads are shown in the Threads window after stepping in the debugger. All threads are always suspended after hitting a breakpoint, but by default only the thread in which you are stepping is visible. By default, this option is disabled to provide better performance, so other threads will not be visible in the threads window. If you choose not to suspend all threads after stepping, you can still view them on demand using the Pause command.

## Java and Control Project Options

### Process Settings

The Create new process and Attach to process radio buttons specify whether the debugger runs the application is run locally or attaches to a remote process. These settings apply only to Java and Control projects.

#### Create new process settings

When this option is selected, the debugger starts a new Java Virtual Machine for the application when you click Start. The following options can be set for this process:

- Main class: The name of the class containing the main method that is the entry point for the application.
- Parameters: Arguments that are passed to the main method.
- VM parameters: Arguments that are passed to the virtual machine when it starts. These arguments may include -D and -X virtual machine options.
- Home directory: The directory in which to start the Java application.
- Application classpath: Classpath used by the virtual machine.
- Automatically append Library JARs: When this option is enabled, all of the JARs specified in the Libraries folder are appended to the classpath.
- Automatically append server classpath: Then this option is enabled, all of the JARs that are specified in the"Default server classpath" list in Tools-->WebLogic Server-->Server Properties are appended to the classpath.

#### Attach to process

When this option is selected the debugger is attached to a specified Java virtual machine that is already running and is configured to accept a debugger when you click Start.

- Socket: Connects to the virtual machine over the TCP/IP connector. You must specify the port on which the VM is listening. If blank, the server defaults to localhost.
- Shared memory: Connects to the virtual machine over the shared memory connector. You must specify the memory address on which the VM is listening.

Related Topics

Debugging Web Services

Debugging Scenarios

How Do I: Debug an Application?