This page is primarily intended for Mercurial's developers.
C Verification Tools
Ways to verify the C extension you're working on isn't broken.
ASAN is an address sanitizer that detects memory access to unallocated or previously-freed memory.
Bryan O'Sullivan describes using it with Mercurial here.
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