Best way of debigging a C extension

Christian Heimes lists at cheimes.de
Thu Dec 11 22:57:39 CET 2008


Paul Moore wrote:
> I have gdb (although I've hardly used it, but I can learn :-)) but if
> I try building my extension with python setup.py build --debug, I get
> an error because -lpython25_d does not exist. I'm not surprised by
> this, as I don't have a debug build of Python - but that should be OK,
> I'm only looking for debugging info from my code.

You have to build Python on your own to get debug builds. Only debug 
builds allow to do extension debugging like memory leak finding.

> I tried copying libpython25.a to libpython25_d.a - my extension now
> builds, but the resulting pyd is XXX_d.pyd, which won't import. If I
> rename this to XXX.pyd, I can import and things seem to work - but it
> seems a bit of a roundabout way of doing things. Is there a simpler
> way that I've missed? It seems to me that this (debugging a C
> extension without compiling a debug build of Python) would be a fairly
> common situation, so I would have expected a "cleaner" way of doing
> it.

You are working against the system ;)
On Windows all extensions and shared libraries of a debug build have a 
_d suffix.

> At the very least, a documentation patch to explain the best way of
> doing things might be useful. I'll see what I can put together based
> on the responses I get here.

http://svn.python.org/view/python/branches/release25-maint/PCbuild/readme.txt?rev=51333&view=auto

Christian




More information about the Python-list mailing list