Visual D 0.48-beta1
James Japherson
JJ at goolooking.com
Wed Oct 10 23:04:44 UTC 2018
On Wednesday, 10 October 2018 at 07:21:29 UTC, James Japherson
wrote:
> On Wednesday, 10 October 2018 at 06:37:33 UTC, Rainer Schuetze
> wrote:
>>
>>
>> On 08/10/2018 19:55, Rainer Schuetze wrote:
>>>
>>>
>>> On 08/10/2018 17:16, James Japherson wrote:
>>>> Basically I'm having lots of problems with 0.48.
>>>>
>>>> 1. I get that one error about the stack constantly. Usually
>>>> happens when I hit '.' but sometimes not.
>>>
>>> I can reproduce with a combination of "static foreach" and
>>> "tupleof", I hope we can find a solution.
>>>
>>
>> Please try the new beta:
>> https://github.com/dlang/visuald/releases/tag/v0.48.0-beta2
>
> Oh man! Almost! It worked for about 3 minutes! I thought I was
> going to get somewhere! It got me with the stack frame bug.
>
> I'm having a bigger problem though, not sure I think this is
> always been a problem with visual D.
>
> I can't see any outer variables in the debug windows. It seems
> lambda's and inner functions and global scope is never shown
> while in those scopes! This makes it very hard to debug them
> because one can't see the outside variables. One has to make a
> sort of local copy.
>
> e.g.,
>
> int x = 3; // Won't be seen while in foo
>
> void foo()
> {
> // BP stopped here, can't see x in debug watches unless we
> do the following:
> int tmpx = x;
> }
>
>
> --
> Best I can tell is that the stack frame bug occurs much less.
> Maybe 1/10th of the time(before it was every few seconds, now
> it's every minute maybe(although it might get worse after it
> gets worse).
Also, It seems that break points are not hit within meta code. If
one uses static ifs much then one can't debug them. I realize
that some of the code is compiled out, but that code can't create
runtime bugs(because it was compiled out)..
So the remaining code from using the static code can still be
compiled. Basically the compiler needs to keep track of static
compile time code it optimizes out and sent that info to the
debugger so it knows that there was suppose to be code there and
where the actual run time code that was inside the static code
went...
static if (...) // CT code, won't exist in binary but compiler
can still emit it, basically pretending it exists as an if
statement.
{
int x = 43; // RT code, exists in the binary, should have a
line number and BP cabable. We can put a BP on the static if and
it should at least end here.
}
More information about the Digitalmars-d-ide
mailing list