www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - Descent with compile-time debug for testing

reply Ary Borenszweig <ary esperanto.org.ar> writes:
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!
May 31 2009
next sibling parent reply Pablo Ripolles <in-call gmx.net> writes:
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!
Jun 01 2009
parent reply Ary Borenszweig <ary esperanto.org.ar> writes:
Pablo Ripolles escribió:
 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!
And what's on the Error Log?
Jun 01 2009
parent reply Pablo Ripolles <in-call gmx.net> writes:
Hello,

just before it closes there appears a window message tittled "Problems saving
worksppace" and the message is:

"Problems occurred while trying to save the state of the workbench."

On details it's written:

Problems ocurred during save.
java.lang.NullPointerException

Thanks!


Ary Borenszweig Wrote:

 Pablo Ripolles escribió:
 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!
And what's on the Error Log?
Jun 01 2009
parent reply BCS <ao pathlink.com> writes:
Reply to Pablo,

 Hello,
 
 just before it closes there appears a window message tittled "Problems
 saving worksppace" and the message is:
 
 "Problems occurred while trying to save the state of the workbench."
 
 On details it's written:
 
 Problems ocurred during save.
 java.lang.NullPointerException
somewhere there should be a ".log" file that has alls sorts of goodies like stacktraces for the error and the like.
 Thanks!
 
 Ary Borenszweig Wrote:
 
 And what's on the Error Log?
 
Jun 01 2009
parent reply Pablo Ripolles <in-call gmx.net> writes:
OK there you go!

Let's see if this helps.

Thanks!


BCS Wrote:

 Reply to Pablo,
 
 Hello,
 
 just before it closes there appears a window message tittled "Problems
 saving worksppace" and the message is:
 
 "Problems occurred while trying to save the state of the workbench."
 
 On details it's written:
 
 Problems ocurred during save.
 java.lang.NullPointerException
somewhere there should be a ".log" file that has alls sorts of goodies like stacktraces for the error and the like.
 Thanks!
 
 Ary Borenszweig Wrote:
 
 And what's on the Error Log?
 
Jun 01 2009
parent reply Ary Borenszweig <ary esperanto.org.ar> writes:
Hmm, that's strange. You should only get that error if you don't have 
any D project in the workspace. Anyway, it's a bug and I fixed it, you 
can update from Eclipse and it should be fixed.

Please tell me if this happened and you had at least one D project in 
the workspace...

Pablo Ripolles wrote:
 OK there you go!
 
 Let's see if this helps.
 
 Thanks!
 
 
 BCS Wrote:
 
 Reply to Pablo,

 Hello,

 just before it closes there appears a window message tittled "Problems
 saving worksppace" and the message is:

 "Problems occurred while trying to save the state of the workbench."

 On details it's written:

 Problems ocurred during save.
 java.lang.NullPointerException
somewhere there should be a ".log" file that has alls sorts of goodies like stacktraces for the error and the like.
 Thanks!

 Ary Borenszweig Wrote:

 And what's on the Error Log?
Jun 01 2009
parent Pablo Ripolles <in-call gmx.net> writes:
Hello Ary!

Yes indeed, it is fixed! and yes, I had no D project on that workspace.

Thanks!


Ary Borenszweig Wrote:

 Hmm, that's strange. You should only get that error if you don't have 
 any D project in the workspace. Anyway, it's a bug and I fixed it, you 
 can update from Eclipse and it should be fixed.
 
 Please tell me if this happened and you had at least one D project in 
 the workspace...
 
 Pablo Ripolles wrote:
 OK there you go!
 
 Let's see if this helps.
 
 Thanks!
 
 
 BCS Wrote:
 
 Reply to Pablo,

 Hello,

 just before it closes there appears a window message tittled "Problems
 saving worksppace" and the message is:

 "Problems occurred while trying to save the state of the workbench."

 On details it's written:

 Problems ocurred during save.
 java.lang.NullPointerException
somewhere there should be a ".log" file that has alls sorts of goodies like stacktraces for the error and the like.
 Thanks!

 Ary Borenszweig Wrote:

 And what's on the Error Log?
Jun 01 2009
prev sibling parent reply Trass3r <mrmocool gmx.de> writes:
Thanks for your hard work!

Are there plans to improve ddbg support?
I'm getting parser errors:

->APC10goldengine5token5Token
class goldengine.token.Token*[]
->Parser: (1:0): found "[", expected Ident
input: [0]
lookahead: [
lexeme: \[
AST node stack:
Deref Cast Ident
LR stack:
---- State 4 (1:1) ----
Expr -> Deref . Cast DotChain
Cast -> .
---- State 43 (1:1) ----
Expr -> Deref Cast . DotChain
Sign -> .
---- State 71 (1:1) ----
DotChain -> Ident . RefExpr
RefExpr -> .
---- State 47 (1:1) ----
RefExpr -> \. . Ident RefExpr

->
Jun 05 2009
parent reply Ary Borenszweig <ary esperanto.org.ar> writes:
Trass3r escribió:
 Thanks for your hard work!
 
 Are there plans to improve ddbg support?
 I'm getting parser errors:
 
 ->APC10goldengine5token5Token
 class goldengine.token.Token*[]
 ->Parser: (1:0): found "[", expected Ident
 input: [0]
 lookahead: [
 lexeme: \[
 AST node stack:
 Deref Cast Ident
 LR stack:
 ---- State 4 (1:1) ----
 Expr -> Deref . Cast DotChain
 Cast -> .
 ---- State 43 (1:1) ----
 Expr -> Deref Cast . DotChain
 Sign -> .
 ---- State 71 (1:1) ----
 DotChain -> Ident . RefExpr
 RefExpr -> .
 ---- State 47 (1:1) ----
 RefExpr -> \. . Ident RefExpr
 
 ->
That's ddbg working wrong, not Descent. :-P
Jun 05 2009
parent reply Trass3r <mrmocool gmx.de> writes:
Ary Borenszweig schrieb:
 That's ddbg working wrong, not Descent. :-P
Ah, damn so no way this gets fixed. Debugging D is a pain :(
Jun 06 2009
parent reply Steve Teale <steve.teale britseyeview.com> writes:
Trass3r Wrote:

 Ary Borenszweig schrieb:
 That's ddbg working wrong, not Descent. :-P
> Ah, damn so no way this gets fixed. Debugging D is a pain :(
So is ddbg dead?
Jun 10 2009
parent reply Bill Baxter <wbaxter gmail.com> writes:
On Wed, Jun 10, 2009 at 10:55 AM, Steve
Teale<steve.teale britseyeview.com> wrote:
 Trass3r Wrote:

 Ary Borenszweig schrieb:
 That's ddbg working wrong, not Descent. :-P
=A0> Ah, damn so no way this gets fixed. Debugging D is a pain :(
So is ddbg dead?
Author hasn't been heard from round here in close to a year, I think. But I thought the source code was out there. If so, I'd classify it as "dormant" rather than dead. --bb
Jun 10 2009
parent reply Steve Teale <steve.teale britseyeview.com> writes:
Bill Baxter Wrote:

 On Wed, Jun 10, 2009 at 10:55 AM, Steve
 Teale<steve.teale britseyeview.com> wrote:
 Trass3r Wrote:

 Ary Borenszweig schrieb:
 That's ddbg working wrong, not Descent. :-P
 > Ah, damn so no way this gets fixed. Debugging D is a pain :(
So is ddbg dead?
Author hasn't been heard from round here in close to a year, I think. But I thought the source code was out there. If so, I'd classify it as "dormant" rather than dead. --bb
Thanks Bill, same as dead to me, I'm already spending more time on voluntary computer programming than my wife understands ;=) Steve
Jun 12 2009
parent Ary Borenszweig <ary esperanto.org.ar> writes:
Steve Teale wrote:
 Bill Baxter Wrote:
 
 On Wed, Jun 10, 2009 at 10:55 AM, Steve
 Teale<steve.teale britseyeview.com> wrote:
 Trass3r Wrote:

 Ary Borenszweig schrieb:
 That's ddbg working wrong, not Descent. :-P
> Ah, damn so no way this gets fixed. Debugging D is a pain :(
So is ddbg dead?
Author hasn't been heard from round here in close to a year, I think. But I thought the source code was out there. If so, I'd classify it as "dormant" rather than dead. --bb
Thanks Bill, same as dead to me, I'm already spending more time on voluntary computer programming than my wife understands ;=) Steve
Also the source code's license doesn't seem very permissive: --- (snip) * You may only redistribute the software unmodified, in the form and prepackaging it is available from the official website. ---
Jun 12 2009