Properties

Class

You are required to enter the fully-qualified name of the class that contains the field in which you wish to set a field watchpoint for. The field must be either declared in this class or is found in the class's superclass hierarchy (Java's visibility/access rules are ignored when this search is performed).

If you are setting a watchpoint in a nested class be sure to use the same naming conventions used as is used for naming .class files (ie. use the $ character instead of the . character) as this is the format BugSeeker uses to determine precisely which class to set the breakpoint. Example: use org.myproject.Outer$Inner rather than org.myproject.Outer.Inner).

Field

You are required to supply the name of the field in which you wish to set a watchpoint for. The name of the field is case-sensitive and may refer to a static or non-static field as long as the field is not a constant (ie. both static and final).

Also watch field access

All watchpoints watch field modifications. If you also wish to watch field accesses check this option. A field access is when a field's value is being used. Modifications do not count as a field access.

Name

You may optionally assign a name to this breakpoint. A default name will be assigned if you do not enter a breakpoint name.

Group

From the combo, select the breakpoint group you wish to assign this breakpoint to. Breakpoint groups allow you to organize your breakpoints logically into groups which is helpful if you have lots of breakpoints set for the current project. All breakpoints will be initially assigned to the current breakpoint group that is specified on the current breakpoint group combo on the main BugSeeker application window's toolbar.

Enabled

Check this option if you wish to enable this breakpoint; uncheck if you wish to disable this breakpoint.

Action

There are two actions available when this breakpoint is encountered. You usually will want to ensure that at least one action is selected although nothing prevents you from creating a breakpoint that has no actions enabled.

Break

If this option is checked, the debug session will become paused just before the field is modified/accessed.

Log

If this option is checked, a message indicate that our field is about to be modified/accessed will be displayed on the Console. Information about the field current value and the value to be (if it is about to be modified) will also be printed to the Console.

Filter

If this option is checked, you will be able to enter class filters to restrict where this watchpoint is allowed to pause execution when the field is modified or accessed. For instance, if you are only interested in watch field modifications within the class that defines the field and wish to ignore all other field modifications outside of this class, you would use this breakpoint filter feature to restrict this watchpoint to only that class

To edit the filters, click on the Edit Filters button. A new dialog will be displayed that will allow you to enter class name patterns that specify which classes are to be used to restrict this breakpoint.

Allowable class name patterns are ones that begin or end with the wildcard star (*) character and exact class name matches. A wildcard star character matches any character zero or more times.

To add a new pattern, click on the Add button or click on the special Click here to add a new filter list item. To remove a pattern, select one or more patterns and press the Remove button. To edit an existing class name pattern, double-click on that list item.

Stop only in these classes

If this option is selected, the BugSeeker will only watch field modifications and/or accesses in classes whose name matches one of the patterns. Use this option if you know precisely which classes you are interested in pausing execution when the field is modified/accessed.

Stop in all except these classes

If this option is selected, the BugSeeker will only watch field modifications/accesses in classes whose name is not matched by any of the patterns entered. Use this option if you wish to pause execution when the field is modified/accessed in all classes except certain classes.