Differences between revisions 1 and 3 (spanning 2 versions)
Revision 1 as of 2015-04-10 18:51:26
Size: 442
Editor: mpm
Comment:
Revision 3 as of 2015-04-10 20:53:08
Size: 984
Editor: AugieFackler
Comment:
Deletions are marked like this. Additions are marked like this.
Line 18: Line 18:
== cpychecker ==
Line 19: Line 20:
[[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
}}}

Note:

This page is primarily intended for developers of Mercurial.

{i} 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
  2. cpychecker

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


CategoryDevelopers

CVerificationTools (last edited 2015-04-10 20:53:08 by AugieFackler)