Interpreted Java debug limitations
Limitations exist in the JDK 1.1.X or lower that may cause problems
when debugging your interpreted Java classes. Be aware of the following limitations and
problems when debugging:
- Console input is not accepted.
- You cannot suspend, start, or stop threads.
- Stepping behavior may be erratic when stepping into constructors, or when stepping into
or over SystemLoad library functions.
- The debugger cannot halt an applet or application that has all of its threads blocked.
- You cannot modify the contents of monitored variables.
- Breakpoints set on static initializers or static blocks will be ignored.
- Breakpoints set on try statements are ignored.
- Execution will not stop inside catch blocks for thrown errors.
- The debugger will not notify the user when classes extending from java.lang.Error
are thrown. The debugger will notify the user when classes extending from java.lang.Exception
are thrown.
- When debugging JAR files, the source code for classes contained in a JAR file must be
available outside of the JAR file.
- After exiting a program block, variables now out of scope may still be shown in a
monitor.
- Debug-agent error messages may appear intermittently while debugging your classes.
- If you step into a class that has not been registered with the debugger, you may receive
a "Cannot find source for null" message. If
this happens, issue a step return command to continue debugging. To avoid this problem,
register the appropriate class source file or package containing the class source with the
debugger before you start debugging.
- When debugging remotely, communication between the debugger and the program being
debugged may be terminated prematurely by the JVM.