Debugging CTFE

Robert Fraser fraserofthenight at gmail.com
Thu Jun 19 19:52:10 PDT 2008


Matthias Walter Wrote:

> Koroskin Denis Wrote:
> 
> > On Tue, 17 Jun 2008 20:04:25 +0400, Matthias Walter  
> > <Matthias.Walter at st.ovgu.de> wrote:
> > 
> > > Hello,
> > >
> > > I have written some compile time executable functions with D 1.0 which  
> > > work in runtime but hang (and allocate memory without end) at  
> > > compile-time. Is there a way to debug this further? Can one print stuff  
> > > out? (Don't know if writefln works at compile-time, as I'm using Tango)  
> > > Can I somehow get a stack trace of the functions called?
> > >
> > > best regards
> > > Matthias Walter
> > 
> > You can use pragma(msg, "hello there!") to output some text at compile  
> > time.
> 
> This only helps for templates, as their "running" is instanciation, which lets the pragma print different stuff depending on the template parameters. In CTFE-functions, you can thus only print fixed messages, but nothing like "I'm here, arg1 - " ~ arg1

It seems like low-yhanging fruit to add some mechanism to do this (a
compiler builtin function call with no runtime code generated, for
example).


More information about the Digitalmars-d-learn mailing list