1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-30 21:55:31 +02:00
This commit is contained in:
Alain Magloire 2003-03-16 21:49:07 +00:00
parent eab77f5a41
commit 14e24ea6b1

View file

@ -1,3 +1,36 @@
2003-03-16 Alain Magloire
GDB/MI does not keep the stack level, from what we expect. In gdb, the
highest stack is level 0 and lower stack as the highest level:
-stack-list-frames
^done,stack=[frame={level="0 ",addr="0x0804845b",func="main",file="hello.c",line="24"},
frame={level="1 ",addr="0x42017499",func="__libc_start_main",from="/lib/i686/libc.so.6"}]
-stack-list-frames
^done,stack=[frame={level="0 ",addr="0x08048556",func="main2",file="hello.c",line="58"},
frame={level="1 ",addr="0x08048501",func="main",file="hello.c",line="41"},
frame={level="2 ",addr="0x42017499",func="__libc_start_main",from="/lib/i686/libc.so.6"}]
This is of no use to us since the level is always "0". The level is necessary for example when
doing recursive calls to make a distinction between frames.
So in CDT this reverse the hidghest frame will have the highest number. In CDT:
stack=[frame={level="2 ",addr="0x0804845b",func="main",file="hello.c",line="24"},
frame={level="1 ",addr="0x42017499",func="__libc_start_main",from="/lib/i686/libc.so.6"}]
stack=[frame={level="3 ",addr="0x08048556",func="main2",file="hello.c",line="58"},
frame={level="2 ",addr="0x08048501",func="main",file="hello.c",line="41"},
frame={level="1 ",addr="0x42017499",func="__libc_start_main",from="/lib/i686/libc.so.6"}]
* src/org/eclipse/cdt/debug/mi/core/cdi/model/StackFrame.java:
Takes a new Argument in the constructor, the level.
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Threawd.java:
Create the StackFrame with the constructor.
* src/org/eclipse/cdt/debug/mi/core/cdi/Location.java:
Fix equals().
* src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java:
Use the right level when setting the frame.
2003-03-14 Alain Magloire
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Argument.java: