Note:
This page is primarily intended for developers of Mercurial.
This page is an incomplete stub. Please help improve this page by expanding it, following our wiki style guidelines. |
C Verification Tools
Ways to verify the C extension you're working on isn't broken.
Contents
1. ASAN
ASAN is an address sanitizer that detects memory access to unallocated or previously-freed memory.
Bryan O'Sullivan describes using it with Mercurial here.
2. cpychecker
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