Mikhail,
I could not get to the rock bottom of the problem as this problem is
not reproducible all the times.
But we have been getting No frame with frame # or frame address from
time to time.
Some times, the frame # is -1 & sometimes, the frame # is 3 or 4
(where just frames does not exist at all)
There could be something the following code is messing up
with[Thread.java:
278]
// Need the GDB/MI view of level which is the reverse, i.e. the
highest level is 0 // See comment in StackFrame constructor.
int miLevel = getStackFrameCount() - frameLevel;
I have just listed the MI annotatations for one such scenario.
[1,133,878,523,970] 18118-exec-step 1
[1,133,878,523,970] 18118^running
[1,133,878,523,970] (gdb)
[1,133,878,524,110]
18118*stopped,reason="end-stepping-range",thread-id="1",frame={addr="0
x0
0000
0000\
4205be2",func="vim_strsave",args=[{name="string"}],file="/home/balask/
th
read
s/Vim/vim62/src/misc2.c"\
,line="915"}
[1,133,878,524,110] (gdb)
[1,133,878,524,110] 18119 info threads [1,133,878,524,126] &"info
threads\n"
[1,133,878,524,313] ~"* 1 system thread 1729469 Priority:178 "
[1,133,878,524,313]
18119^done,frame={func="vim_strsave",args=[{name="string"}],file="/hom
e/
bala
sk/t\
hreads/Vim/vim62/src/misc2.c",line="915"}
[1,133,878,524,313] (gdb)
[1,133,878,524,313] 18120-stack-info-depth [1,133,878,524,329]
18120^done,depth="3"
[1,133,878,524,329] (gdb)
[1,133,878,524,329] 18121-stack-list-frames 0 3 [1,133,878,524,345]
18121^done,stack=[frame={level="0
",addr="0x0000000004205be2",func="vim_strsave"\
,file="/home/balask/threads/Vim/vim62/src/misc2.c",line="915"},frame={
le
vel=
"1 ",addr="0x00000000043\
bad70",func="netbeans_setRunDir",file="/home/balask/threads/Vim/vim62/
sr
c/ne
tbeans.c",line="2057"},f\
rame={level="2
",addr="0x00000000041a1310",func="main",file="/home/balask/threads/Vim
/v
im62
/src/main\
.c",line="323"}]
[1,133,878,525,251] (gdb)
getStackFrameCount()=3::::::frameLevel= 3::::::getStackFrameCount
-frameLevel= 0 [1,133,878,531,611] 18126-stack-select-frame 0
[1,133,878,531,829] 18126^done [1,133,878,531,829] 18127 whatis p
[1,133,878,531,829] (gdb) [1,133,878,531,845] &"whatis p\n"
[1,133,878,532,032] ~"type = unsigned char *\n"
[1,133,878,532,032] 18127^done
[1,133,878,532,032] (gdb)
getStackFrameCount()= 3::::::frameLevel= 0::::::getStackFrameCount -
frameLevel= 3 [1,133,878,536,298] 18128-stack-select-frame 3
[1,133,878,536,298] &"No frame with frame# or frame_address 3\n"
[1,133,878,536,486] 18128^error,msg="No frame with frame# or
frame_address 3"
[1,133,878,536,486] (gdb)
[1,133,878,536,486] 18129 whatis p
[1,133,878,536,486] &"whatis p\n"
[1,133,878,536,689] ~"type = unsigned char *\n"
[1,133,878,536,689] 18129^done
Thanks,
Bala
-----Original Message-----
From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx]
On
Behalf Of Mikhail Khodjaiants
Sent: Friday, December 02, 2005 9:50 PM
To: CDT General developers list.
Subject: Re: [cdt-dev] Wrong frame level info from CDT.
Anita,
Therefore pressing F5 at the return statement of this function gives
following input to MI GDB: [ (FrameCount - FrameLevel) = (2-3) = -1 ]
mi stack-select-frame -1 output returned will be 'No
frame with frame# or frame_address -1" from GDB.
The "stack-select-frame" command is not get called in your scenario.
When I
follow it I don't get this error.
"stack-select-frame" is called only if the selection of stack frame in