Thread overview
Descent with compile-time debug for testing
May 31, 2009
Ary Borenszweig
Jun 05, 2009
Trass3r
Jun 06, 2009
Ary Borenszweig
Jun 06, 2009
Trass3r
Jun 10, 2009
Steve Teale
Jun 10, 2009
Bill Baxter
Jun 12, 2009
Steve Teale
Jun 12, 2009
Ary Borenszweig
May 31, 2009
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!
June 05, 2009
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

->
June 06, 2009
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
June 06, 2009
Ary Borenszweig schrieb:
> That's ddbg working wrong, not Descent. :-P
>

Ah, damn so no way this gets fixed.
Debugging D is a pain :(
June 10, 2009
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?


June 10, 2009
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
June 12, 2009
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


June 12, 2009
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.
---