PDA

View Full Version : Stack overflow


Pasko
18-Jun-2009, 08:06 AM
Hi!
In my application create Stack overflow exception. My application didn't answer. But I didn't get any message about it. This is code
procedure Tdm.qOnePeopleBeforePost(DataSet: TDataSet);
begin
try
if (DataSet.tag=999)then
DatabaseError('Error in tag.', NIL);
except
on E: EDatabaseError do
with MainForm do
begin
// acPeopleExecute(acOnePeople); - This is place of next call qOnePeopleBeforePost
raise;
end;
end;
end;
What is it? Why I didn't get message about Stack overflow?

Alex
18-Jun-2009, 10:58 AM
Hi.

That's because creating a report requires using a stack. Stack overflow is very tricky error as it messes with stack.
EurekaLog can catch these errors, but there can be cases, when it is not. EurekaLog uses few tricks to get some results for stack overflow, but it is not always possible.
May be you can create a demo to reproduce a problem? And then we'll see if there is any new trick that we can add.
Stack overflow is one of the errors, which you should catch on your testing stage (another one is stack corruption/out of range errors).

Pasko
23-Jun-2009, 07:39 AM
I couldn't create simple test application. In test it's OK.
But in real ...:confused:
I shall try once more.
Good luck.

Alex
14-Jul-2009, 08:36 AM
Hi,

If you can reproduce this situation under debugger, then can you see a call stack from Delphi's IDE?