On 06/06/2011 02:05, Hans-Peter Diettrich wrote:
Martin schrieb:
I am not sure what you mean by the description?
The call-stack is supposed to fill when the debugger stops.
Rigth, but now it appears to be always empty :-(
Not good, and worse, I can only guess, since it doesn't happen on my PC
If executiopn continues (run F9 / Step F8,.F7) it is cleared until
the execution stops again.
The effect is best seen with F7, when a step into a subroutine takes
some time until the begin of the subroutine is focused in the editor, in
The time taken is normal, it's the time it takes to load the line-info
(blue dots) from gdb.
a different file. Here the Call Stack list is filled with entries, just
after pressing F7, and is cleared when the new position is shown in the
editor. The ListView title (column) bar also disappears for a short
time, and when it reappears[1] the list is empty.
Using F8, where the focus only moves to the next line in the same file,
the CallStack appears to remain almost empty.
Anyway, first we need to establish if gdb returns anything (or even if
the IDE asks.
Please have a look at the content of the "debug output" window.
When the stack window is open (and the power button enabled !), and the
execution stops (breakpoint, end of step) you should see something like
(it helps to have watches and other windows closed, and to turn the
power off in the "history" window)
<-stack-info-depth>
^done,depth="42"
(gdb)
<-stack-list-arguments 1 0 9>
^done,stack-args=[frame={level="0",args=[{name="SENDER",value="0x1ca9d0"},{name="this",value="<error
reading
variable>"}]},frame={level="1",args=[{name="this",value="0x1ca9d0"}]},frame={level="2",args=[]},frame={level="3",args=[]},frame={level="4",args=[]},frame={level="5",args=[]},frame={level="6",args=[{name="this",value="0x41d2934"},{name="MESSAGE",value="0"}]},frame={level="7",args=[{name="this",value="0x1ca9d0"},{name="THEMESSAGE",value="{MSG
= 66567, WPARAM = 0, LPARAM = 0, RESULT = 0, WPARAMLO = 0, WPARAMHI = 0,
LPARAMLO = 0, LPARAMHI = 0, RESULTLO = 0, RESULTHI =
0}"}]},frame={level="8",args=[{name="this",value="0x1ca9d0"},{name="MESSAGE",value="{MSG
= 66567, WPARAM = 0, LPARAM = 0, RESULT = 0, WPARAMLO = 0, WPARAMHI = 0,
LPARAMLO = 0, LPARAMHI = 0, RESULTLO = 0, RESULTHI =
0}"}]},frame={level="9",args=[{name="TARGET",value="0x1ca9d0"},{name="AMESSAGE",value="0"}]}]
(gdb)
<-stack-list-frames 0 9>
^done,stack=[frame={level="0",addr="0x00428a59",func="TFORM1__BUTTON4CLICK",file="unit1.pas",fullname="C:/data/lazarus/bug1/unit1.pas",line="131"},frame={level="1",addr="0x00500ef1",func="CLICK",file="include/control.inc",fullname="C:/lazarus_latest/lcl/include/control.inc",line="2286"},frame={level="2",addr="0x00543df3",func="STDCTRLS_TBUTTONCONTROL_$__CLICK"},frame={level="3",addr="0x005444e6",func="STDCTRLS_TCUSTOMBUTTON_$__CLICK"},frame={level="4",addr="0x00544b91",func="STDCTRLS_TBUTTON_$__CLICK"},frame={level="5",addr="0x00543cae",func="STDCTRLS_TBUTTONCONTROL_$__WMDEFAULTCLICKED$TMESSAGE"},frame={level="6",addr="0x0040b1e6",func="DISPATCH",file="../inc/objpas.inc",fullname="C:/FPC/SVN/trunc/rtl/win32/../inc/objpas.inc",line="592"},frame={level="7",addr="0x004ffce3",func="WNDPROC",file="include/control.inc",fullname="C:/lazarus_latest/lcl/include/control.inc",line="1683"},frame={level="8",addr="0x004f3628",func="WNDPROC",file="include/wincontrol.inc",fullname="C:/lazarus_latest/lcl/include/wincontrol.inc",line="5241"},frame={level="9",addr="0x005665de",func="DELIVERMESSAGE",file="lclmessageglue.pas",fullname="C:/lazarus_latest/lcl/lclmessageglue.pas",line="111"}]
(gdb)
If you see something like this, the try close and open the stack window,
Check if you see at least the commands being issued:
<-stack-info-depth>
<-stack-list-arguments 1 0 9>
<-stack-list-frames 0 9>
There may be more, and they may be for smaller number ranges too.
If you get this, then maybe it is an issue with the listview not
displaying the updates....
Could even be an uncaught exception, and the list view be left with a
"BeginUpdate" that is never finished (though they all should have try
finally blocks...)
Check if you select "copy all", if you get the stack frames...
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus