- a set of stub routines that could be SetFunctionned into place before testing
out new software. These would include:
AllocMem - stick a tag onto the memory block stating what type of memory was
requested, possibly also address of task that requested it
drawing functions - these would check to make sure that the rastport they were
acting on was in a block of memory allocated as PUBLIC, the bitmaps they
were acting on were CHIP, etc.
I don't know what else -- whatever other warnings that you know people will
overlook, which could be trapped inside a system routine. Whenever an offense
was found you could pop up a requester saying what guideline had been
violated. As an option, you could make it possible to disable a specific
warning once it had been given once to avoid thousands of occurrences of the
same requester.
- a library of debugging calls that would be able to interact with the
replacement system routines
The first thing I can think of is a function you could call just before
exiting which would ensure that all AllocMems made by your task had been
freed properly.
While these things would impose significant overhead on the system, you could
at least run software through them before releasing it... this would catch
programs that needed to be FixHunked, system structures not in public memory,
and probably dozens of other things that might break, but which I'm not even
aware of :-). There might not be a way to find self-modifying code, improper
access of exception vectors and many others, but at least it would prevent
many of the honest slips that we all make.
John
--
"I figured there was this holocaust, right, and the only ones left alive were
Donna Reed, Ozzie and Harriet, and the Cleavers."
-- Wil Wheaton explains why everyone in the
Next Generation is so nice