I'm having a VERY WEIRD problem that I'm not able to trace. I'm
hoping that someone, out of the good of their heart, might give any
suggestions they have as to what they think the problem is.
The main application is a Visual Basic MDI application which serves as
little more than a shell to call two C DLLs. One DLL is a serial port
driver which receives characters at 19200bps and every 260 characters
processes the data received. The other DLL is simply a graphics drivers
which is little more than a few bitblt's and Textouts which graphs the
data recieved about twice a second.
The problem I'm getting is usually a FLOATING POINT: STACK UNDERFLOW
error. I've used SoftIce to break on the error and trace back, and
the error is definitely coming from a floating point assembly
So far I have failed to trace the problem. I have checked and
re-checked every array that I have. I could not find anything that
could be corrupting memory, though I feel that this must be the
problem. My local heap has plenty of space (though since this is a
DLL, an overrun should not affect the stack anyway). All my global
allocations worked with no error. There must be something I've
missed. This application is pretty intensive -- every 200ms a lot of
floating point calculations are done within the interrupt service
I've been doing everything I know how for over a week now, and I have
been unable to turn up anything. I'm beginning to think this is a bug
Besides memory overwrites with an array, is there any other way to
Is there anything that I should be aware of concerning serial port ISR's
that might possible cause this problem?
Are there any other ways to determine if memory corruption is the problem?
No suggestion is too lame, people. I'm hoping someone else will catch
something I missed. Thanks for any help in advance.