2014-02-08 13:12:12 +01:00
|
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
|
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
|
|
|
|
<head>
|
|
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
|
|
|
<meta name="description" content="google summer of code 2014 ideas" />
|
|
|
|
<meta name="keywords" content="Cppcheck, google summer of code" />
|
|
|
|
<title>google summer of code 2014 ideas</title>
|
|
|
|
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Orbitron&text=Cppcheck" />
|
|
|
|
<link rel="stylesheet" type="text/css" href="/site/css/pack.css" />
|
|
|
|
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<div id="header">
|
|
|
|
<div class="wrap">
|
|
|
|
<h1><a href="/">Cppcheck</a></h1>
|
|
|
|
<p>A tool for static C/C++ code analysis</p>
|
|
|
|
</div> <!-- .wrap -->
|
|
|
|
</div> <!-- #header -->
|
|
|
|
<div id="tabs">
|
|
|
|
<div class="wrap">
|
|
|
|
<ul>
|
|
|
|
<li><a href="/">Home</a></li>
|
|
|
|
<li><a href="http://sourceforge.net/apps/mediawiki/cppcheck/">Wiki</a></li>
|
|
|
|
<li><a href="http://sourceforge.net/apps/phpbb/cppcheck/">Forum</a></li>
|
|
|
|
<li><a href="http://sourceforge.net/apps/trac/cppcheck/">Issues</a></li>
|
|
|
|
<li><a href="/devinfo/" title="Developer Information">Developer Info</a></li>
|
|
|
|
<li><a href="/demo/">Online Demo</a></li>
|
|
|
|
<li><a href="http://sourceforge.net/projects/cppcheck/">Project page</a></li>
|
|
|
|
</ul>
|
|
|
|
</div> <!-- .wrap -->
|
|
|
|
</div> <!-- #tabs -->
|
|
|
|
<div id="content">
|
|
|
|
<div class="wrap">
|
|
|
|
|
|
|
|
<h2>Overview</h2>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
<ol>
|
|
|
|
<li>Core Cppcheck
|
|
|
|
<ol>
|
2014-02-08 14:47:40 +01:00
|
|
|
<li>Add 1 new checker (C++)</li>
|
2014-02-08 13:12:12 +01:00
|
|
|
<li>Improved value flow (C++)</li>
|
2014-02-08 14:47:40 +01:00
|
|
|
<li>Check for unused functions when -j is used (C++)</li>
|
2014-02-08 13:12:12 +01:00
|
|
|
</ol></li>
|
|
|
|
<li>Configurations
|
|
|
|
<ol>
|
2014-02-08 14:47:40 +01:00
|
|
|
<li>Add a configuration (XML)</li>
|
2014-02-08 13:12:12 +01:00
|
|
|
<li>Auto generate configuration (C++ / scripting)
|
|
|
|
<li>GUI for editing configurations (C++,Qt)</li>
|
|
|
|
</ol></li>
|
|
|
|
<li>Distributed computing
|
|
|
|
<ol>
|
|
|
|
<li>Distributed computing (C++)</li>
|
|
|
|
</ol></li>
|
|
|
|
</ul>
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h2>1. Core Cppcheck</h2>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
<strong>Project 1.1</strong><br>
|
2014-02-08 14:47:40 +01:00
|
|
|
<strong>Name:</strong> Add 1 new checker<br>
|
2014-02-08 13:12:12 +01:00
|
|
|
<strong>Skills required:</strong> C++<br>
|
|
|
|
<strong>Description:</strong> There are several tickets in our issue tracker that has ideas for new checkers.
|
|
|
|
The subtasks will be: implement a new checker, write test cases, test it against various projects.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
<strong>Project 1.2</strong><br>
|
|
|
|
<strong>Name:</strong> Improved value flow<br>
|
|
|
|
<strong>Skills required:</strong> C++<br>
|
|
|
|
<strong>Description:</strong> The value flow analysis is used by various checkers - therefore improving
|
|
|
|
this will mean that many checkers get better. It is possible to improve the value flow analysis, for example
|
|
|
|
after conditions, inside loops, etc.
|
|
|
|
</p>
|
|
|
|
|
2014-02-08 14:47:40 +01:00
|
|
|
<p>
|
|
|
|
<strong>Project 1.3</strong><br>
|
|
|
|
<strong>Name:</strong> Check for unused functions when -j is used<br>
|
|
|
|
<strong>Skills required:</strong> C++, threads<br>
|
|
|
|
<strong>Description:</strong> Currently the check for unused functions only works when the analysis is
|
|
|
|
single-threaded. When multithreaded analysis is done the check is disabled. The function usage must be
|
|
|
|
stored in a thread safe way. The problem is that you don't have access to mutexes inside the check so
|
|
|
|
instead of store to the same container from different threads it might be a good idea to store the
|
|
|
|
function usage in different containers. And when all threads are done the results can be "merged".
|
|
|
|
</p>
|
2014-02-08 13:12:12 +01:00
|
|
|
|
|
|
|
<h2>2. Configurations</h2>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
<strong>Project 2.1</strong><br>
|
2014-02-08 14:47:40 +01:00
|
|
|
<strong>Name:</strong> Add a configuration<br>
|
|
|
|
<strong>Skills required:</strong> C/C++ (not much), XML<br>
|
|
|
|
<strong>Description:</strong> More configuration files are needed for various libraries. Subtasks: choose
|
|
|
|
a popular library. Analyse the library functions and read API documentation. Write proper configuration
|
|
|
|
file for Cppcheck.
|
2014-02-08 13:12:12 +01:00
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
<strong>Project 2.2</strong><br>
|
|
|
|
<strong>Name:</strong> Autogenerated configurations<br>
|
|
|
|
<strong>Skills required:</strong> C++ / scripting<br>
|
|
|
|
<strong>Description:</strong> Auto generate configuration from headers. To parse the headers,
|
|
|
|
you can for instance do this yourself (python script/c++/..) or you can modify cppcheck and
|
|
|
|
use the symboldatabase.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
<strong>Project 2.3</strong><br>
|
|
|
|
<strong>Name:</strong> GUI for editing configurations<br>
|
|
|
|
<strong>Skills required:</strong> C++, Qt<br>
|
|
|
|
<strong>Description:</strong> A graphical user interface for editing configurations would be nice. This should be
|
|
|
|
added in the cppcheck-gui program.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h2>3. Distributed computing</h2>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
<strong>Project 3.1</strong><br>
|
|
|
|
<strong>Name:</strong> Distributed computing<br>
|
|
|
|
<strong>Skills required:</strong> Network, script, C++<br>
|
|
|
|
<strong>Description:</strong> Make it possible to distribute analysis. A client and server needs to be written. The client will
|
|
|
|
execute cppcheck to perform analysis.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
</div> <!-- .wrap -->
|
|
|
|
</div> <!-- #content -->
|
|
|
|
|
|
|
|
</body>
|
|
|
|
</html>
|