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.

Title: 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] 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]
> 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