* [gdb 6.7.1/6.8] does '-var-create - @' work or not?
@ 2008-04-03 13:20 Bogdan Slusarczyk
2008-04-03 13:33 ` Daniel Jacobowitz
0 siblings, 1 reply; 6+ messages in thread
From: Bogdan Slusarczyk @ 2008-04-03 13:20 UTC (permalink / raw)
To: gdb
I've done simple test:
int test2( int a )
{
int b = a + 20;
return b;//should be a=11, b=31, but is a=31,b=0
}
int test1( int a )
{
int b = a + 10;
return test2( b );//should be a=1, b=11, but is a=11, b=11
}
int main( int argc, char** argv )
{
int a = 10;
int b = 1;
test1( 1 );//should be a=10, b=1 and is a=10, b=1
return 0;
}
I thought that created var objects using '-var-create - @' can be
updated in another frame. But it doesn't work, -var-evaluate-expression
returns wrong value. On the other hand 'print' returns right values. Or
maybe I did something wrong? My sequence: -var-create at the begining,
and next -var-update and -var-evaluate-expression in another frames.
Regards,
Bogdan
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [gdb 6.7.1/6.8] does '-var-create - @' work or not?
2008-04-03 13:20 [gdb 6.7.1/6.8] does '-var-create - @' work or not? Bogdan Slusarczyk
@ 2008-04-03 13:33 ` Daniel Jacobowitz
2008-04-03 13:50 ` Vladimir Prus
2008-04-03 14:13 ` Bogdan Slusarczyk
0 siblings, 2 replies; 6+ messages in thread
From: Daniel Jacobowitz @ 2008-04-03 13:33 UTC (permalink / raw)
To: Bogdan Slusarczyk; +Cc: gdb
On Thu, Apr 03, 2008 at 03:19:55PM +0200, Bogdan Slusarczyk wrote:
> I thought that created var objects using '-var-create - @' can be updated
> in another frame. But it doesn't work, -var-evaluate-expression returns
> wrong value. On the other hand 'print' returns right values. Or maybe I
> did something wrong? My sequence: -var-create at the begining, and next
> -var-update and -var-evaluate-expression in another frames.
Please add some additional details: what version of GDB is this,
and what were the exact commands and output in the MI session?
--
Daniel Jacobowitz
CodeSourcery
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [gdb 6.7.1/6.8] does '-var-create - @' work or not?
2008-04-03 13:33 ` Daniel Jacobowitz
@ 2008-04-03 13:50 ` Vladimir Prus
2008-04-03 14:30 ` Bogdan Slusarczyk
2008-04-03 14:13 ` Bogdan Slusarczyk
1 sibling, 1 reply; 6+ messages in thread
From: Vladimir Prus @ 2008-04-03 13:50 UTC (permalink / raw)
To: gdb
Daniel Jacobowitz wrote:
> On Thu, Apr 03, 2008 at 03:19:55PM +0200, Bogdan Slusarczyk wrote:
>> I thought that created var objects using '-var-create - @' can be updated
>> in another frame. But it doesn't work, -var-evaluate-expression returns
>> wrong value. On the other hand 'print' returns right values. Or maybe I
>> did something wrong? My sequence: -var-create at the begining, and next
>> -var-update and -var-evaluate-expression in another frames.
>
> Please add some additional details: what version of GDB is this,
> and what were the exact commands and output in the MI session?
Right, in general MI bug report should include the *exact* sequence
of commands.
In this case, this looks very much like the bug that Nick has already
reported. Nick has also posted a proposed patch, which I haven't reviewed
yet, though.
- Volodya
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [gdb 6.7.1/6.8] does '-var-create - @' work or not?
2008-04-03 13:33 ` Daniel Jacobowitz
2008-04-03 13:50 ` Vladimir Prus
@ 2008-04-03 14:13 ` Bogdan Slusarczyk
1 sibling, 0 replies; 6+ messages in thread
From: Bogdan Slusarczyk @ 2008-04-03 14:13 UTC (permalink / raw)
To: gdb
> Please add some additional details: what version of GDB is this,
> and what were the exact commands and output in the MI session?
>
Ups, my fault. It was gdb6.8(built using mingw, but not mingw technical
preview, the same problem is with gdb6.7.1(cygwin)), windows XP. Tested
program built using cygwin gcc -g3.
gdb6.8.exe -i mi -q
(gdb)
-file-exec-and-symbols test.exe
^done
(gdb)
-break-insert main
^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x004010a5",func="main",file="main.cpp",fullname=
"c:\\cygwin\\bin/main.cpp",line="14",times="0"}
(gdb)
-break-insert test2
^done,bkpt={number="2",type="breakpoint",disp="keep",enabled="y",addr="0x00401056",func="test2(int)",file="main.cpp",ful
lname="c:\\cygwin\\bin/main.cpp",line="3",times="0"}
(gdb)
-exec-run
^running
(gdb)
~"[New thread 3528.0xd8c]\n"
~"[New thread 3528.0xed4]\n"
&"warning: cYgFFFFFFFF 6110C854\n"
&"warning: cYgstd 22cc80 d 3\n"
*stopped,reason="breakpoint-hit",bkptno="1",thread-id="1",frame={addr="0x004010a5",func="main",args=[{name="argc",value=
"1"},{name="argv",value="0x6601e8"}],file="main.cpp",fullname="c:\\cygwin\\bin/main.cpp",line="14"}
(gdb)
-exec-next
^running
(gdb)
*stopped,reason="end-stepping-range",thread-id="1",frame={addr="0x004010aa",func="main",args=[{name="argc",value="1"},{n
ame="argv",value="0x6601e8"}],file="main.cpp",fullname="c:\\cygwin\\bin/main.cpp",line="15"}
(gdb)
-exec-next
^running
(gdb)
*stopped,reason="end-stepping-range",thread-id="1",frame={addr="0x004010b1",func="main",args=[{name="argc",value="1"},{n
ame="argv",value="0x6601e8"}],file="main.cpp",fullname="c:\\cygwin\\bin/main.cpp",line="16"}
(gdb)
-exec-next
^running
(gdb)
*stopped,reason="end-stepping-range",thread-id="1",frame={addr="0x004010b8",func="main",args=[{name="argc",value="1"},{n
ame="argv",value="0x6601e8"}],file="main.cpp",fullname="c:\\cygwin\\bin/main.cpp",line="17"}
(gdb)
-var-create - @ a
^done,name="var1",numchild="0",value="10",type="int"
(gdb)
-var-create - @ b
^done,name="var2",numchild="0",value="1",type="int"
(gdb)
-exec-continue
^running
(gdb)
*stopped,reason="breakpoint-hit",bkptno="2",thread-id="1",frame={addr="0x00401056",func="test2",args=[{name="a",value="1
1"}],file="main.cpp",fullname="c:\\cygwin\\bin/main.cpp",line="3"}
(gdb)
-exec-next
^running
(gdb)
*stopped,reason="end-stepping-range",thread-id="1",frame={addr="0x0040105f",func="test2",args=[{name="a",value="11"}],fi
le="main.cpp",fullname="c:\\cygwin\\bin/main.cpp",line="4"}
(gdb)
-stack-info-frame
^done,frame={level="0",addr="0x0040105f",func="test2",file="main.cpp",fullname="c:\\cygwin\\bin/main.cpp",line="4"}
(gdb)
p a
&"p a\n"
~"$1 = 11"
~"\n"
^done
(gdb)
p b
&"p b\n"
~"$2 = 31"
~"\n"
^done
(gdb)
-var-update var1
^done,changelist=[{name="var1",in_scope="true",type_changed="false"}]
(gdb)
-var-evaluate-expression var1
^done,value="31"
(gdb)
-var-update var2
^done,changelist=[{name="var2",in_scope="true",type_changed="false"}]
(gdb)
-var-evaluate-expression var2
^done,value="0"
(gdb)
-stack-select-frame 1
^done
(gdb)
-stack-info-frame
^done,frame={level="1",addr="0x0040107e",func="test1",file="main.cpp",fullname="c:\\cygwin\\bin/main.cpp",line="10"}
(gdb)
-var-update var1
^done,changelist=[{name="var1",in_scope="true",type_changed="false"}]
(gdb)
-var-evaluate-expression var1
^done,value="11"
(gdb)
-var-update var2
^done,changelist=[{name="var2",in_scope="true",type_changed="false"}]
(gdb)
-var-evaluate-expression var2
^done,value="11"
(gdb)
p a
&"p a\n"
~"$3 = 1"
~"\n"
^done
(gdb)
p b
&"p b\n"
~"$4 = 11"
~"\n"
^done
(gdb)
-stack-select-frame 2
^done
(gdb)
-var-update var1
^done,changelist=[{name="var1",in_scope="true",type_changed="false"}]
(gdb)
-var-evaluate-expression var1
^done,value="10"
(gdb)
-var-update var2
^done,changelist=[{name="var2",in_scope="true",type_changed="false"}]
(gdb)
-var-evaluate-expression var2
^done,value="1"
(gdb)
p a
&"p a\n"
~"$5 = 10"
~"\n"
^done
(gdb)
p b
&"p b\n"
~"$6 = 1"
~"\n"
^done
(gdb)
-stack-info-frame
^done,frame={level="2",addr="0x004010c4",func="main",file="main.cpp",fullname="c:\\cygwin\\bin/main.cpp",line="17"}
(gdb)
q
&"q\n"
Tested file:
int test2( int a )
{
int b = a + 20;
return b;//a=11, b=31
}
int test1( int a )
{
int b = a + 10;
return test2( b );//a=1, b=11
}
int main( int argc, char** argv )
{
int a = 10;
int b = 1;
test1( 1 );//a=10, b=1
return 0;
}
If you need another information, just ask.
Regards,
Bogdan
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [gdb 6.7.1/6.8] does '-var-create - @' work or not?
2008-04-03 13:50 ` Vladimir Prus
@ 2008-04-03 14:30 ` Bogdan Slusarczyk
2008-04-03 17:33 ` Vladimir Prus
0 siblings, 1 reply; 6+ messages in thread
From: Bogdan Slusarczyk @ 2008-04-03 14:30 UTC (permalink / raw)
Cc: gdb
> In this case, this looks very much like the bug that Nick has already
> reported. Nick has also posted a proposed patch, which I haven't reviewed
> yet, though.
>
Was it posted to gdb-patches? I can't find it.
Regards,
Bogdan
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [gdb 6.7.1/6.8] does '-var-create - @' work or not?
2008-04-03 14:30 ` Bogdan Slusarczyk
@ 2008-04-03 17:33 ` Vladimir Prus
0 siblings, 0 replies; 6+ messages in thread
From: Vladimir Prus @ 2008-04-03 17:33 UTC (permalink / raw)
To: gdb
Bogdan Slusarczyk wrote:
>> In this case, this looks very much like the bug that Nick has already
>> reported. Nick has also posted a proposed patch, which I haven't reviewed
>> yet, though.
>>
>
> Was it posted to gdb-patches? I can't find it.
The thread subject is "-var-update @".
- Volodya
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2008-04-03 14:30 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-04-03 13:20 [gdb 6.7.1/6.8] does '-var-create - @' work or not? Bogdan Slusarczyk
2008-04-03 13:33 ` Daniel Jacobowitz
2008-04-03 13:50 ` Vladimir Prus
2008-04-03 14:30 ` Bogdan Slusarczyk
2008-04-03 17:33 ` Vladimir Prus
2008-04-03 14:13 ` Bogdan Slusarczyk
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox