Program Stack (AREV Specific)
At 15 JAN 2010 09:57:49PM Donald Bakke wrote:
We just got a new client who is getting periodic "Stack Overflow" errors when they run an AREV session that simply loops through three different programs. Their basic function is to scan for OS files, import the data, and then export for another process to pick up. It's pretty simple stuff. Even though reading and writing of records is occurring, there is no access to symbolic fields. I broke to the debugger when the system was running fine and the program stack had 199 entries in it. Many of them are AREV system stored procedures and a small handful of client-specific routines, but about a third of the entries look like what I've highlighted in the below screen shot:
These entries certainly look like file handles to me but "$! " prefix has me confused. Any ideas about this?
Thanks,
At 18 JAN 2010 06:05AM [url=http://www.sprezzatura.com]The Sprezzatura Group[/url] wrote:
Bang code? See this blog entry.
World leaders in all things RevSoft
At 19 JAN 2010 07:16AM Eric wrote:
& is char(38)
$ is char(36)
! is char(33)
These are forward pointers in the array, as each entry is about this length, and may have been scrambled by another variable (@FILES?) once the array limit was popped.
There used to be an assembler object $progstack which would return the value to a RBASIC program, and I think there was a stack segment pointer within AREV's own stack block which pointed to the PROGSTACK.
Of course, my memory on this is dim, and I could be completely wrong.
At 21 JAN 2010 08:17PM [email protected]'s Don Bakke wrote:
Upon further examination it certainly appears that the REV numbers always point to a bang table. In the screen shot I provided all of the REV numbers are the same. However, there is only one indexed column in this table. Why would it appear multiple times in the stack? Is this due to some dynamic naming convention that CALCULATEX uses for symbolic fields?
(BTW, read the blog entry. The chart alone was worth the price of admission. )
At 22 JAN 2010 09:08AM [url=http://www.sprezzatura.com]The Sprezzatura Group[/url] wrote:
Rather than the program stack can we see the return stack? (RP).
Thanks BTW - producing it kept us amused for hours ;)
World leaders in all things RevSoft
At 23 JAN 2010 01:42PM [email protected]'s Don Bakke wrote:
I think we are in a catch-22. Trying to pull up the return stack yields another stack overflow error. Is there another way to pull this up? (BTW, this is also why PSP doesn't work but PS does.)
At 23 JAN 2010 02:11PM [email protected]'s Don Bakke wrote:
Ignore the last question. I'll just try 'R' instead.