[Python-Dev] MemoryError... how much memory? (original) (raw)

Facundo Batista facundobatista at gmail.com
Wed Oct 27 15:30:16 CEST 2010


There are a lot of places where Python or modules do something like:

self->buf = (char *)malloc(size);
if (!self->buf) {
          PyErr_SetString(PyExc_MemoryError, "out of memory");

At job, we're having some MemoryErrors, and one thing that we would love to know, if how much memory it was asking when that happened.

So, I thought about doing something like:

char message[50];
...
self->buf = (char *)malloc(size);
if (!self->buf) {
          snprintf(message, 50, "out of memory (asked: %lld)", size);
          PyErr_SetString(PyExc_MemoryError, &message);

Is any inherent problem in doing this?

May it be a good idea to make it generic, like providing a PyErr_MemoryError that could accept a message and a number, and stores that number in the exception objects internals?

Thanks!

-- .    Facundo

Blog: http://www.taniquetil.com.ar/plog/ PyAr: http://www.python.org/ar/



More information about the Python-Dev mailing list