[Python-Dev] Debug entry points for PyMalloc
Tim Peters
tim.one@comcast.net
Thu, 21 Mar 2002 14:45:32 -0500
[Michael Hudson]
> ...
> Presuambly it would be possible to do this wrapped around malloc() &
> free() too?
Provided they were spelled PyMem_Malloc etc, sure. The debug routines as
sketched don't make any secret assumptions about the underlying allocators
they call.
> No real point, I guess.
There may be an excellent point to it: one of the pad bytes could be used
to record which "API family" a block of memory came from. Then a
mismatching realloc/free could be caught directly at the time it happened.
>> + The Debug free first uses the address to find the number of bytes
>> originally asked for, then checks the 8 bytes on each end for
>> sanity (in particular, that the PYMALLOC_FORBIDDENBYTEs are still
>> intact).
>> XXX Make this checking a distinct entry point.
> Yes. Particularly if you can call it from gdb.
Is something extraordinary required to make that possible? I had in mind
nothing fancier than
extern void _PyMalloc_DebugCheckAddress(void* p);
> ...
> Is it worth having an option where you *don't* call _Free?
Not if I have to code it.
> ...
> What are you waiting for? <wink>
For endless silly objections to fade away <wink>.