Hi all (and Hi again Keith!),

I'm new to the Palm Pilot and POSER, but I have inherited a Palm Pilot
project which is causing me to minus years from my expected life span!

Please stay with me as I out line my problem.

In a function that wraps a call to DmGetRecord() I get the following error
from the POSER,

"During a regular checkup, poser determined that the dynamic heap chunk with
header address
0x0000BDA2 got corrupted. The "hOffset" field of the chunk header did not
reference a memory 
location within a master pointer block".

So given that the problem is a stack overflow, I decided to turn on the
'stack_cleanup' in an attempt to by-pass the problem. 
This resulted in no joy!
The POSER not only continued to give me the above error message, but also
once in a while (and completely at random) threw up an additional message...

"During a regular checkup, poser determined that the dynamic heap chunk with
header address
0x0000BDA2 got corrupted. The  size of the chunk (%chunk_size) was larger
than the currently 
accepted maximum (%chunk_max)".

So I thought, what now, maybe a function that examines the stack as I step
through the code? 
In order to examine the stack as I stepped through the program, I added the
following line at key locations in the code. 

        bRetVal = SysGetStackInfo (ppcStart, ppcEnd);

However this has added to my problems, when the app is loading. The first
time it comes across
this line I get a message from the POSER informing me..

'"AppName" has just written directly to memory location zero (Null) .. this
is not permitted on the Palm OS applications... "AppName" will likely crash
this or future Palm devices...'

I choose to continue stepping through the code. 
As I step through the code, I make several calls to SysGetStackInfo(). The
values for returned by SysGetStackInfo(), ppcStart and ppcEnd, are always
NULL.
In addition, I also added SysGetStackInfo() line to my function that wraps a
call to DmGetRecord(), and I now get the above error message on this line
(instead of my call to DmGetRecord()). I'm aware that this is not important
(as the stack has already over flown) and is only co-incidental, but ...
alas!!!

I've spent days searching for answers on the net, any help however small
would be greatly appreciated.

Thanks in advance,
Loughlin.



Reply via email to