[Python-Dev] valgrind
Herman Geza
hg211 at hszk.bme.hu
Tue Nov 7 03:11:31 CET 2006
Hi!
I've embedded python into my application. Using valgrind I got a lot of
errors. I understand that "Conditional jump or move depends on
uninitialised value(s)" errors are completely ok (from
Misc/README.valgrind). However, I don't understand why "Invalid read"'s
are legal, like this:
==21737== Invalid read of size 4
==21737== at 0x408DDDF: PyObject_Free (in /usr/lib/libpython2.4.so.1.0)
==21737== by 0x4096F67: (within /usr/lib/libpython2.4.so.1.0)
==21737== by 0x408A5AC: PyCFunction_Call (in
/usr/lib/libpython2.4.so.1.0)
==21737== by 0x40C65F8: PyEval_EvalFrame (in
/usr/lib/libpython2.4.so.1.0)
==21737== Address 0xC02E010 is 32 bytes inside a block of size 40 free'd
==21737== at 0x401D139: free (vg_replace_malloc.c:233)
==21737== by 0x408DE00: PyObject_Free (in /usr/lib/libpython2.4.so.1.0)
==21737== by 0x407BB4D: (within /usr/lib/libpython2.4.so.1.0)
==21737== by 0x407A3D6: (within /usr/lib/libpython2.4.so.1.0)
Here python reads from an already-freed memory area, right? (I don't think
that Misc/README.valgrind answers this question). Or is it a false alarm?
Thanks,
Geza Herman
More information about the Python-Dev
mailing list