#pragma section-numbers 2 <> <> = C Verification Tools = Ways to verify the C extension you're working on isn't broken. <> == ASAN == ASAN is an address sanitizer that detects memory access to unallocated or previously-freed memory. Bryan O'Sullivan describes using it with Mercurial [[http://markmail.org/message/a7o3hu423giexdiq|here]]. == cpychecker == [[http://gcc-python-plugin.readthedocs.org/en/latest/cpychecker.html|cpychecker]] checks for common errors in cpython extensions like over-retaining or under-retaining a PyObject. It seems to be easily confused, but it was extremely helpful and found a lot of little problems in late 2014. Augie ran it vaguely like this: {{{ for file in $(hg files 'set:**.c') ; do $GCC_PYTHON_PLUGIN/gcc-with-cpychecker -c $(python-config --includes) $file done }}} ---- CategoryDevelopers