Delphi 5, large packaged application.

A programer's nightmare. Something I have done is overwriting memory.
The symptom will not sit still.

Sometimes I can get a repeatable situation, and see exactly what is
getting smashed (eg MyTable.Field[X].FieldName). But the moment I put
any additional code in place, it moves around.

So it seems like: if I can get one of the repeatable situations
active, then set a "memory changed" breakpoint, I might have a hope of
seeing who/where the culprit is.

However, there are few simple variables, almost everything is accessed
via some method. Thus I find the Delphi "Memory Watch/Break When
Changed" difficult (impossible) to use.

I have tried EurekaLog, MemProof and MemCheck (tools available via
google), but ended up drowning in a flood of information which is
either irrelevant or meaningless to me.

What are people using to debug errors like this? Since I am
overwriting "my own" memory space, no red flags are raised when the
damage is done. It is only later, when the program tries to use the
trashed memory, that mayhem occurs.

Long ago under DOS I was able to kill this problem by knowing roughly
what area was gettin smashed, setting 'memory changed' breakpoints
over that area, and seeing what line I was executing when the memory
was overwritten.

I am unable to find a similar tool/approach for windows/Delphi.

Any suggestions? Many thanks in advance.




Reply via email to