Error Message useless

Ty Tower tytower at hotmail.com
Mon May 12 16:18:14 PDT 2008


Mike Wrote:

> On Mon, 12 May 2008 00:22:39 +0200, Tower Ty <tytower at hotmail.com> wrote:
> 
> > Can you explain the debug{} a bit more please  Mike . What does that  
> > look like and how is it used?
> 
> It's code that only gets compiled in a debug build.
> 
> Here's roughly what I do:

> 
> debug
> {
>      alias Stdout dbg;
> }
> Compile with -debug switch on!
> Later on I use Stdout for every normal output, but dbg for temporary debug  
> messages:
> 
> <example>
> 
> Stdout("Initializing warp drive ...").newline; // this should be in the  
> console in debug and release mode
> 
> WarpEngine.prepareUnipolarMatrixPhalanxThingie(unipolar);
> dbg("first call ok, foo = ")(WarpEngine.foo).newline; // this should be  
> removed before release
> 
> WarpEngine.resetWarpParameterFieldConstants(1, 2, 1701);
> dbg("second call ok, bar = ")(WarpEngine.bar).newline;
> 
> WarpEngine.initializeWarpNacelles(BOTH);
> dbg("third call ok, baz = ")(WarpEngine.baz).newline;
> 
> WarpEngine.removeTribbles(all);
> dbg("fourth call ok, now engaging").newline;
> 
> WarpEngine.engage();
> 
> Stdout("Warp drive ready.").newline;
> 
> </example>
> 
> Those dbg Stdouts should be removed in a release build. But every now and  
> then you forget to remove one and it ends up in production. So if you now  
> compile this with the -release flag, the alias never gets defined and  
> every dbg call still in there yields a syntax error.
> 
> -Mike
> 
> PS: I'm NOT a Star Trek fan :)
> 
> -- 
> Using Opera's revolutionary e-mail client: http://www.opera.com/mail/



Thanks Mike - Missed it on the first pass but Note for Learners like me 

Compile with -debug switch on!



More information about the Digitalmars-d mailing list