[Skip Montanaro <skip.montan...@gmail.com>]
> I've got a memory issue in my modified Python interpreter I'm trying
> to debug. Output at the end of the problematic unit test looks like this:

To my eyes, you left out the most important part ;-)  A traceback
showing who made the fatal free() call to begin with.

In debug mode, allocations are padded on both ends with various stuff:
 FORBIDDENBYTEs (0xfd), a count of the number of bytes originally
requested, and a serial number incremented by 1 each time
alloc/realloc is called.  The memory you requested is entirely filled
with CLEANBYTEs ()xcd).

On deallocation, that stuff is checked (that's where your run is
dying), and the memory is filled with DEADBYTEs (0xdd) (a weak but
nevertheless often effective way to detect "double free"s).

Now in your case, absolutely every byte shown is 0x00.  There are no
useful clues at all remaining.  It's not just a short buffer overrun,
_everything_ has been NULLed out, including before the requested
memory.

So something has gone nuts spraying 0 all over memory ... or the
pointer passed to free() was nonsense to begin with.  If it were a
case of double free, we'd usually expect to see some DEADBYTEs in the
debug output.  But there weren't any.

However, you did not get any output from tracemalloc, despite that it
sounds like you set up the right magic to activate it.  Which leans
toward the "complete nonsense" hypothesis.  If tracemalloc doesn't
find the address in its dict of currently-allocated addresses, looks
like it fails silently, simply not producing any output.  Which is
what you're experiencing.

So where was free() called and what was passed to it?  All the
evidence is consistent with the idea that what was passed to free()
was never obtained from a malloc or reallloc call to begin with.
_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/A32E5ZVJ4IZBNDHMLOXH2OOAB2CKAYJN/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to