Descent with compile-time debug for testing

Pablo Ripolles in-call at gmx.net
Mon Jun 1 03:28:04 PDT 2009


I do not why but every time I install Descent into my Eclipse 3.4.2 on MacOSX, on the exit (quiting eclipse) it gives me a JavaNullPointer error... it's a pity.

Cheers!


Ary Borenszweig Wrote:

> Hi!
> 
> I just uploaded a new test version of Descent (0.5.6) with the new 
> compile-time debugging feature. I tested it with some functions and 
> templates and it seems to be working (but not with string mixins,) so I 
> wanted you to play with it a little and see what you think, what could 
> be improved or what is wrong, etc.
> 
> As always, you can update from Eclipse itself as described here:
> 
> http://www.dsource.org/projects/descent
> 
> And now a little explanation about how to get it working: right click on 
> the function call or template instance you want to debug at 
> compile-time, select Source -> Debug at Compile-Time, and that's it! The 
> debugger interface will appear and you can step-into/over/return, or 
> continue, place breakpoints (but not yet in external files, sorry,) and 
> also it will break on errors, and you'll have the full stack trace to 
> see what went wrong. :-)
> 
> (maybe I'll do a video about this later, for the curious)
> 
> Just note that if you do this:
> 
> ---
> int foo(int x) {
>    return x * 2;
> }
> 
> void main() {
>    int x = foo(10);
> }
> ---
> 
> if you try to debug "foo(10)", it will show the debugger interface, but 
> stepping into will end the debugging session. Why? Because in the 
> semantic analysis for that code, the call "foo(10)" isn't evaluated at 
> compile time (as Descent just sneaks into the normal semantic analysis 
> of the module.) For this you have to write:
> 
> void main() {
>    const x = foo(10);
> }
> 
> and now "foo(10)" is evalauted at compile time, since it's return value 
> is assigned to a const value. ("const int" will also work.)
> 
> In the execution, you can see variables, analyze expressions (it 
> supports any kinf of expression, like writing "1 + 2*3" will print "7".)
> 
> This is only for D1, in D2 it will not work as expected.
> 
> Enjoy!



More information about the Digitalmars-d-announce mailing list