BugSeeker supports most valid Java expressions but not all. You cannot use this(...) nor super(...) to invoke an overloaded or superclass constructor. BugSeeker's expression evaluator does not obey Java's access restrictions; you are free to access private, package-private variables and methods as if they were public. You are allowed to allocate new objects and assign them to expressions provided that the expression evaluates to an assignable value and not a constant for instance.
Pre and Post increment (++) and decrement (--) operators are not supported nor are any of the assignment operators (=, +=, -=, etc.). To assign values, you should use the Inspector window's (Tools | New Inspector) Modify tab and enter the new value or expression that you wish to assign to.
Also, all references to class or interface names should be done using fully-qualified names (ie. Use java.lang.String rather than String).
BugSeeker's expression evaluator has trouble evaluating expressions in nested classes that access the enclosing class's fields and/or methods. To work around this problem, you may need to access these fields/methods using the compiler generated this$n variables.
When allocating new objects as part of expression evaluation or modification, anonymous class creation syntax is not supported. Array initializers are supported however.
Because of limitations with the core JPDA engine, BugSeeker's expression evaluator is unable to evaluate expression that access types (classes, interfaces, arrays) that have not yet been loaded in the debug VM. Thus, you may sometimes receive a class or interface not yet loaded error message when trying to evaluate an expression. The workaround is to resume the session and evaluate the expression again after the type has been loaded. See the JLS for details on when types are loaded (ie. First-use rules).
For expressions that make method class or allocate new instances, these expressions can only be executed if the debugger has been suspended by some debugger event such as by breakpoint, watchpoint, by single stepping, running to cursor. If you have manually suspended a thread, by pressing the pause button for instance, these expressions cannot be evaluated (a JPDA limitation). The solution is to single step once.
For arrays, BugSeeker only supports accessing array elements and the array's length. Although arrays also inherit members from it's subclass java.lang.Object, you will not be able to access these inherited members.