Debugging Object Teams programs

Debugging support has been extended to help debugging OT/J programs. Debugging OT/J may give rise to a new kind of questions: is a declared callin binding actually firing at run-time? In order to analyze this question a developer may need to investigate:

  1. Has a team instance be created and activated?
  2. Is the callin blocked by either a guard predicate or a org.objectteams.LiftingVetoException?
Investigating question 1 is supported by the new team monitor view, support for question 2 is provided by enhancements of the debug view and its stepping actions.

Team Monitor View

A special view exists for monitoring which team instances have been created and whether each of them is currently active or not. When debugging callin bindings which do not trigger while they are intended to do so, the team monitor should provide first help to find out whether there is any active instance of the team being considered. If no active instance exists, callins can not trigger. Read more...

Stepping through OT/J code

The byte code into which OT/J programs are translated has some significant differences to the original source code. In order to hide some generated code and to provided convenient stepping even through declarative method bindings, the debug view has been enhanced for OT/J. Read more...

Variables View

In the variables view you will currently see all generated fields of teams, roles and bases. While normally these fields are not of interest during debugging, they might come handy for inspecting the linkage between objects. All generated fields have a name starting with _OT$.