| <html> |
| <head> |
| <meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" /> |
| <link rel=stylesheet type="text/css" href="../css/book.css"> |
| <link rel=stylesheet type="text/css" href="otguide.css"> |
| <title>Debugging Object Teams programs</title> |
| <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> |
| </head> |
| <body> |
| <h1>Debugging Object Teams programs</h1> |
| <p>Debugging support has been extended in order 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: |
| <ol> |
| <li>Has a team instance be created and activated?</li> |
| <li>Is the callin blocked by either a guard predicate or a <code>org.objectteams.LiftingVetoException</code>?</li> |
| </ol> |
| <p> |
| Investigating question 1 is supported by the new <b>team monitor view</b>, |
| support for question 2 is provided by enhancements of the debug view and its stepping actions. |
| </p> |
| <h2 id="teammonitor"><a href="teammonitor.html">Team Monitor View</a></h2> |
| 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. <a href="teammonitor.html">Read more...</a> |
| <h2 id="stepping"><a href="stepping.html">Stepping through OT/J code</a></h2> |
| 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. <a href="stepping.html">Read more...</a> |
| <h2 id="variables">Variables View</h2> |
| By default the variables view hides some internal fields that are generated by the compiler. |
| However, in some situations these variables might come handy for inspecting the linkage between |
| role/base/team instances. For that reason, filtering of these variables |
| can be toggled from the variable view's menu: <span class="ui">Java > Show OT/J Internal Variables</span>. |
| The same holds for the detail drill down of the team monitor. |
| <h2 id="hot-code-replace">Hot code replacement</h2> |
| During debugging, code changes can automatically be swapped into the running program even for classes |
| requiring bytecode weaving. Naturally, this is bounded by the inability of the JVM to handle |
| signature changes (incl. addition & removal of methods / fields) for hot code replacement. |
| </body> |
| </html> |