[ddbg] lsv shows duplicated variables

Jascha Wetzel "[firstname]" at mainia.de
Sun Apr 29 09:40:44 PDT 2007


DMD doesn't emit symbols for scopes below procedure level (bugzilla
#1201). therefore Ddbg can't tell which one is the right variable.
when evaluating an expression with an ambiguous identifier, Ddbg simply
chooses the first instance it comes across.

the last time i checked, MSVC had the same problem. although CodeView
provides a solution.

Ary Manzana wrote:
> Hi!
> 
> I don't know if this is the intended behaviour, but for the following code:
> 
> ---------------------------------------------------------------------
> module main;
> 
> void main() {
>     for(int i = 0; i < 10; i++) {      // Line 4
>     }
>     for(int i = 0; i < 10; i++) {
>     }
>     for(int i = 0; i < 10; i++) {      // Line 8
>     }
> }
> ---------------------------------------------------------------------
> 
> #####################################################################
> Loading symbols from main
> ->bp main:4
> Breakpoint set: main.d:4 0x402014
> ->
> Breakpoint set: main.d:4 0x402014
> ->r
> ntdll.dll loaded
> KERNEL32.dll loaded
> USER32.dll loaded
> GDI32.dll loaded
> Breakpoint 0 hit at main.d:4 0x402014
>         for(int i = 0; i < 10; i++) {
> ->lsv
> Scope: _Dmain
> i = 4211075
> i = 18
> i = 4272652
> ->
> #####################################################################
> 
> That is, the "i" variable is shown three times, even though the next two
> aren't visible yet. If you set a breakpoint in a next line, for example
> line 8, the "i" variable is also shown three times. I think one "i"
> should be shown always.
> 
> The problem is that I'm integrating ddbg in Descent, and in the
> varaibles view I use the "lsv" command, so the "i" variable appears
> three times. A hack would be, if a variable appears many times, send "=
> i" to the debugger and keep the one with that value, but... if it can be
> fixed in ddbg, much better.


More information about the Digitalmars-d-debugger mailing list