There is another LPC debugging technique that provides a good supplement
to the debug(x,y) macro provided by debug.h.

Suppose that your object won't load and the logfile isn't specifying where
the error is.  You can use the #if 0 preprocessor directive to selectively
temporarily remove suspect pieces of your code.  Note that using #if 0 is much
cleaner than commenting the code out using /* and */.  One reason its cleaner
is that it is possible to nest #if directives but not comments.  Another
reason is that you can add the code back simply by changing #if 0 to #if 1.

Suppose you had the following function that was giving you problems:

void xyz()
{
        statement_1();   /* statement 1 does blah blah */
        statement_2();   /* statement 2 does blah blah */
}

Suppose you suspected that statement_2() was causing the error.  You could
temporarily remove that line by changed xyz to read:

void xyz()
{
        statement_1();   /* statement 1 does blah blah */
#if 0
        statement_2();   /* statement 2 does blah blah */
#endif
        statement_3();   /* statement 3 does blah blah */
}

Suppose that you had used comments instead of #if 0 to remove statement_2().

Suppose you tried it like this:

/*
        statement_2();   /* statement 2 does blah blah */
*/

This method would cause a compile error because of the nested comments.

Therefore, it would have to look something like this:

/*      statement_2(); */  /* statement 2 does blah blah */

But this method is bad because its a royal pain to insert and remove comments
within a line using the ed line editor (IMHO).

--Truilkan@TMI
