digitalmars.D.debugger - [ddbg] lsv shows duplicated variables
- Ary Manzana (42/42) Apr 29 2007 Hi!
- Jascha Wetzel (7/55) Apr 29 2007 DMD doesn't emit symbols for scopes below procedure level (bugzilla
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.
Apr 29 2007
DMD doesn't emit symbols for scopes below procedure level (bugzilla
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.
Apr 29 2007








Jascha Wetzel <"[firstname]" mainia.de>