Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
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 the Debug view is changed.

Mikhail

----- Original Message ----- From: "Birje, Anita (STSD)" <anita.birje@xxxxxx>
To: "CDT General developers list." <cdt-dev@xxxxxxxxxxx>
Sent: Friday, December 02, 2005 7:17 AM
Subject: RE: [cdt-dev] Wrong frame level info from CDT.


Hi Mikhail,

I am working on the latest version of CDT (3.0),  OS being Windows XP.

Simple scenario
------------------------ Assume the stack frame level is currently 2 & frame count is 2. (Frame
level is the current stack frame and frame count is the total number of
stack frames)

After a function call (Step Into / F5), suppose the frame level becomes
3 & total number of stack frames is 3.(Frames here are 3 nested function
calls, each function defined in separate '*.c' file). On return from
this particular function the frame count gets reduced by 1 (FrameCount
is now 2) whereas the levels of frame (FrameLevel in StackFrame) still
displays 3.

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.

Thanks,
Anita

-----Original Message----- From: cdt-dev-bounces@xxxxxxxxxxx [
<mailto:cdt-dev-bounces@xxxxxxxxxxx> mailto:cdt-dev-bounces@xxxxxxxxxxx]
On Behalf Of Mikhail Khodjaiants
Sent: Tuesday, November 29, 2005 9:56 PM
To: CDT General developers list.
Subject: Re: [cdt-dev] Wrong frame level info from CDT.

Anita,

You must be doing something else except stepping - the
"stack-select-frame"
command is not get called if I just step through the code.
I tried to follow your instructions but I haven't been able to reproduce
the problem.
BTW, which version of CDT you rae using and what is your platfom?

Thanks,
Mikhail
----- Original Message ----- From: "Birje, Anita (STSD)" <anita.birje@xxxxxx>
To: "CDT General developers list." <cdt-dev@xxxxxxxxxxx>
Sent: Tuesday, November 29, 2005 8:18 AM
Subject: RE: [cdt-dev] Wrong frame level info from CDT.


Hi,

This happens in a nested function call ( when frame level >= 3 ),
whenever there is a return from the function (frame level > 3).
Instead
of doing a Step Over (F6), do a Step Into (F5) and the error could be
reproduced.

As mentioned in the previous mail, sometimes the frameLevel or the
frameCount issues a wrong mi frame level command, resulting in 'No
frame
with frame# or frame_address -1" from GDB.

Hope the information would be enough to reproduce this error. Please
let
me know if any further indepth information would be required for
reproducing this.

Thanks & Regards,
Anita Birje



-----Original Message----- From: cdt-dev-bounces@xxxxxxxxxxx [
<mailto:cdt-dev-bounces@xxxxxxxxxxx> mailto:cdt-dev-bounces@xxxxxxxxxxx]

On Behalf Of Mikhail Khodjaiants
Sent: Tuesday, November 29, 2005 3:24 AM
To: CDT General developers list.
Subject: Re: [cdt-dev] Wrong frame level info from CDT.

Do you have a test case? I can't reproduce it.

----- Original Message ----- From: "Birje, Anita (STSD)" <anita.birje@xxxxxx>
To: "CDT General developers list." <cdt-dev@xxxxxxxxxxx>
Sent: Friday, November 25, 2005 7:56 AM
Subject: [cdt-dev] Wrong frame level info from CDT.


Hi,

While trying to debug a program, I get wrong frame level info from
CDT,
therefore passing a command to MI GDB as follows
mi stack-select-frame -1
results in a 'No frame with frame# or frame_address -1" from GDB.

After going through the code, realized , 'Thread.java' returns '-1'
at
line 277 :
int miLevel = getStackFrameCount()- frameLevel;

The 'frameLevel' estimated is incorrect which is done in
'Thread.java'
at line 256:
frameLevel = stackframe.getLevel();
This is probably due to the wrong level set at line 124 in
'Thread.java'
:
currentFrames.add(new StackFrame(this, miFrames[i], depth -
miFrames[i].getLevel()));

Did anyone encounter this problem or knows the solution, please help.


Regards,
Anita






Back to the top