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