<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 &gt; 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 &amp; removal of methods / fields) for hot code replacement.
  </body>
</html>
