blob: 6418ef902a747199c138304451a814fcdd6baf53 [file] [log] [blame]
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>The AspectJtm Problem Diagnosis Guide</title><link rel="stylesheet" href="aspectj-docs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.44"><link rel="home" href="index.html" title="The AspectJtm Problem Diagnosis Guide"><link rel="next" href="messages.html" title="Chapter 1. Messages"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The AspectJ<sup>tm</sup> Problem Diagnosis Guide</th></tr><tr><td width="20%" align="left">&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="messages.html">Next</a></td></tr></table><hr></div><div class="book" id="d0e1"><div class="titlepage"><div><h1 class="title"><a name="d0e1"></a>The AspectJ<sup>tm</sup> Problem Diagnosis Guide</h1></div><div><h3 class="author">the AspectJ Team</h3></div><div><div class="legalnotice"><p>Copyright (c) 2006 IBM Corporation and others.
2006 Contributors.
All rights reserved.
</p></div></div><div><div class="abstract"><p><a name="d0e15"></a><b>Abstract</b></p><p>
This guide describes how to configure the AspectJ compiler/weaver to provide
information for diagnosing problems in the input programs, the
compiler/weaver or its configuration.
</p><p>
The AspectJ compiler and weaver can provide lots of information for diagnosing
problems in building AspectJ programs. For problems in the input program,
there are a number of default warning and error messages, as well as many
configurable "lint" messages, all of which can be emitted normally,
logged using standard facilities, or intercepted programmatically.
These are discussed in <a href="messages.html">Messages</a>. Since most errors
relate to writing pointcuts incorrectly, there is a section on
<a href="pointcuts.html">Debugging Pointcuts</a>.
</p><p>
For problems with the compiler/weaver itself there are three facilities
that enable the AspectJ developers to resolve bugs even when it is
too hard to deliver a reproducible test case:
<div class="orderedlist"><ol type="1"><li><p><a name="d0e27"></a><a href="trace.html">Tracing</a> can be enabled to track progress up to the time of a failure;</p></li><li><p><a name="d0e31"></a><a href="ajcore.html">AspectJ Core Files</a> can give a relatively complete picture of the state of
the world at the time of a failure; and </p></li><li><p><a name="d0e35"></a><a href="ltwdump.html">Dumping classes during load-time weaving</a> is a way to capture both
input and output classes during load-time weaving.
</p></li></ol></div>
</p><p>
This guide describes how to configure messages to get the right information
and how to configure traces, dumps, and core files. Although the compiler/weaver
operates in roughly three modes (from the command-line, embedded in an IDE,
and enabled as load-time weaving), the principles are basically the same for
all modes. The differences lie in how to set up diagnostics and what
information is likely to be relevant.
</p></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>1. <a href="messages.html">Messages</a></dt><dd><dl><dt><a href="messages.html#messages-introduction">Introduction</a></dt><dd><dl><dt><a href="messages.html#messages-introduction-config">Configuring Messages</a></dt></dl></dd><dt><a href="messages-scenarios.html">Message scenarios</a></dt><dd><dl><dt><a href="messages-scenarios.html#messages-scenarios-ct">Compile-time weaving scenarios</a></dt><dt><a href="messages-scenarios.html#messages-scenarios-ltw">Load-time weaving scenarios</a></dt></dl></dd><dt><a href="messages-xlint.html">Lint messages</a></dt></dl></dd><dt>2. <a href="pointcuts.html">Debugging Pointcuts</a></dt><dd><dl><dt><a href="pointcuts.html#pointcuts-introduction">Introduction</a></dt><dt><a href="pointcuts-debugging.html">Debugging pointcuts</a></dt></dl></dd><dt>3. <a href="ajcore.html">AspectJ Core Files</a></dt><dd><dl><dt><a href="ajcore.html#ajcore-introduction">Introduction</a></dt><dd><dl><dt><a href="ajcore.html#configuration">Configuring dump files</a></dt><dt><a href="ajcore.html#ajcore-examples">AJCore File Examples</a></dt></dl></dd></dl></dd><dt>4. <a href="trace.html">Tracing</a></dt><dd><dl><dt><a href="trace.html#trace-introduction">Introduction</a></dt><dd><dl><dt><a href="trace.html#trace-configuration">Configuring Tracing</a></dt><dt><a href="trace.html#trace-examples">Examples</a></dt></dl></dd></dl></dd><dt>5. <a href="ltwdump.html">Dumping classes during load-time weaving</a></dt><dd><dl><dt><a href="ltwdump.html#ltwdump-introduction">Introduction</a></dt><dd><dl><dt><a href="ltwdump.html#ltw-examples">Configuring bytecode dumping in load-time weaving</a></dt><dt><a href="ltwdump.html#ltwdump-examples">LTW Dump Examples</a></dt></dl></dd></dl></dd></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left">&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="messages.html">Next</a></td></tr><tr><td width="40%" align="left">&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;Chapter 1. Messages</td></tr></table></div></body></html>