Subject |
Re: Error internal stack underflow |
From |
Mark <nospam@nospam.com> |
Date |
Mon, 12 Aug 2024 00:49:39 -0400 |
Newsgroups |
dbase.getting-started |
Thanks for this. The links were quite interesting. Not sure if there is a way in Dbase to check if the the stack is empty or full as outlined in the first link. Do you know of a way?
Also, your spitballing theory is quite feasible. A reference list of these files could be stored in memory somewhere to allow for automatic deletion of the temporary files at logout. I had thought this deletion just uses wildcards e.g., *qsql.*. But there could be an actual list of temp files created during the session and that could be the memory stack that is "underflowing"? This is all kind of over my head tho.
Maybe I'll check with Dbase support for more info on the _qsql file deletion process. I would love to get to the bottom of this underflow error.
Thanks
Lee Grant Wrote:
> Mark,
>
> You can try this site for a fairly interesting discussion of debugging
> Stack Underflow conditions.
>
> https://www.codingdrills.com/tutorial/stack-data-structure/debugging-stack-undeflow-errors
>
> And this description by Microsoft Learn:
> https://learn.microsoft.com/en-us/cpp/sanitizers/error-stack-buffer-underflow?view=msvc-170
>
> Worse come to worse, this could almost sound like the problem with the
> _sql files, is the dBASE set up, perhaps, meaning a stack for keeping
> track of these files, and it might trigger this condition. Not sure,
> just spitballing here, since it could have done some damage to stack
> when it hits it or tries to save it, or other variables that the program
> kept.
>
> Lee
>
> On 8/7/2024 3:38 PM, Mark wrote:
> > Have been supporting a Plus app in multiple locations for over 10 years. Sometimes get the fatal error - Internal Stack Underflow. I found the reason involves _qsql files. These are typically temporary files, but they can accumulate if the app crashes. If they accumulate beyond about 1000 this error will occur.
> >
> > I added a function in the app logoff code to cleanup these files and that has helped. But still getting this error for other unknown reasons.
> >
> > While ON ERROR catches most other errors it does not catch this one. Anyone know of a way to catch this? A TRY/Catch would probably work but this error can pop up anywhere and no way to locate the specific code where it occurs.
> >
> > In a search of this NG Mattia suggested - Try change the address inserted in SHAREDMEMLOCATION (BDE configuration). Have tried this but no joy.
> >
> > Any ideas appreciated.
>
|
|