Stephan Herrmann | 0166441 | 2010-04-01 20:28:43 +0000 | [diff] [blame] | 1 | <html> |
| 2 | <head> |
| 3 | <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" /> |
| 4 | <link rel=stylesheet type="text/css" href="../css/book.css"> |
| 5 | <link rel=stylesheet type="text/css" href="otguide.css"> |
| 6 | <title>Debugging Object Teams programs</title> |
| 7 | <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> |
| 8 | </head> |
| 9 | <body> |
| 10 | <h1>Debugging Object Teams programs</h1> |
| 11 | <p>Debugging support has been extended in order to help debugging OT/J programs. |
| 12 | Debugging OT/J may give rise to a new kind of questions: is a declared |
| 13 | callin binding actually firing at run-time? In order to analyze this question |
| 14 | a developer may need to investigate: |
| 15 | <ol> |
| 16 | <li>Has a team instance be created and activated?</li> |
| 17 | <li>Is the callin blocked by either a guard predicate or a <code>org.objectteams.LiftingVetoException</code>?</li> |
| 18 | </ol> |
| 19 | Investigating question 1 is supported by the new <b>team monitor view</b>, |
| 20 | support for question 2 is provided by enhancements of the debug view and its stepping actions. |
| 21 | </p> |
| 22 | <h2><a name="teammonitor" href="teammonitor.html">Team Monitor View</a></h2> |
| 23 | A special view exists for monitoring which team instances have been created and whether each |
| 24 | of them is currently active or not. When debugging callin bindings which do not trigger while |
| 25 | they are intended to do so, the team monitor should provide first help to find out whether |
| 26 | there is any active instance of the team being considered. If no active instance exists, |
| 27 | callins can not trigger. <a href="teammonitor.html">Read more...</a> |
| 28 | <h2><a name="stepping" href="stepping.html">Stepping through OT/J code</a></h2> |
| 29 | The byte code into which OT/J programs are translated has some significant differences |
| 30 | to the original source code. In order to hide some generated code and to provided |
| 31 | convenient stepping even through declarative method bindings, the debug view has |
| 32 | been enhanced for OT/J. <a href="stepping.html">Read more...</a> |
| 33 | <h2><a name="variables">Variables View</a></h2> |
| 34 | By default the variables view hides some internal fields that are generated by the compiler. |
| 35 | However, in some situations these variables might come handy for inspecting the linkage between |
| 36 | role/base/team instances. For that reason, filtering of these variables |
| 37 | can be toggled from the variable view's menu: <span class="ui">Java > Show OT/J Internal Variables</span>. |
| 38 | The same holds for the detail drill down of the team monitor. |
Stephan Herrmann | 1ef445d | 2012-06-09 01:02:42 +0200 | [diff] [blame] | 39 | <h2><a name="hot-code-replace">Hot code replacement</a></h2> |
| 40 | During debugging, code changes can automatically be swapped into the running program even for classes |
| 41 | requiring bytecode weaving. Naturally, this is bounded by the inability of the JVM to handle |
| 42 | signature changes (incl. addition & removal of methods / fields) for hot code replacement. |
Stephan Herrmann | 0166441 | 2010-04-01 20:28:43 +0000 | [diff] [blame] | 43 | </body> |
| 44 | </html> |