diff options
-rw-r--r-- | www/StaticAnalysis.html | 74 |
1 files changed, 52 insertions, 22 deletions
diff --git a/www/StaticAnalysis.html b/www/StaticAnalysis.html index 50f8b74847..8fbc37f686 100644 --- a/www/StaticAnalysis.html +++ b/www/StaticAnalysis.html @@ -25,10 +25,12 @@ <h1>Information on using the Static Analyzer ("LLVM Checker")</h1> -<p>This documents provides some notes on using the LLVM/clang static analyzer -to find bugs in C and Objective-C programs. Please note that this tool is very -earlier in development, and there are many planned enhancements to improve both -the analysis precision of the tool and the number of bugs it will find.</p> +<p>This documents provides some notes on using the LLVM/clang static analyzer to +find bugs in C and Objective-C programs.</p> + +<p>Please note that this tool is <b>very early</b> in development, and there are +<b>many planned enhancements</b> to improve both the precision and scope of its +analysis algorithms as well as the kinds bugs it will find.</p> <p>This document is arranged into the following sections:</p> @@ -42,17 +44,28 @@ the analysis precision of the tool and the number of bugs it will find.</p> <h2 id="ReleaseContents">Obtaining the Analyzer</h2> -<p> Semi-regular builds of the analyzer on Mac OS X (10.5) are available <a +<p> Using the analyzer involves executing <tt>scan-build</tt> (see <a +href="#BasicUsage">Basic Usage</a>). <tt>scan-build</tt> will first look for a +<tt>clang</tt> executable in the same directory as <tt>scan-build</tt>, and then +search your path.</p> + +<p>If one is using the analyzer directly from the Clang sources, it suffices to +just directly execute <tt>scan-build</tt> in the <tt>utils</tt> directory. No +other special installation is needed.</p> + +<h3>Packaged Builds (currently Mac-Only)</h3> + +<p>Semi-regular builds of the analyzer on Mac OS X (10.5) are available <a href="http://keeda.stanford.edu/~kremenek/checker">here</a>. Packaged builds for other platforms may eventually be provided, but as the tool is in its early -stages we are not actively promoting releases yet.</p> +stages we are not actively promoting releases yet. If you wish to help +contribute regular builds of the analyzer on other platforms, please email the +<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev">Clang Developers' +mailing list</a>.</p> -<p>Packaged builds consist of a few files from the Clang source tree, meaning -that <b>anyone</b> who can build Clang can use the static analyzer. The packaged -builds of the analyzer expand to the following files that are taken from the -<tt>utils</tt> and <tt>Driver</tt> subdirectories in the Clang tree:</p> +<p>Packaged builds of the analyzer expand to the following files:</p> -<table> +<table id="package"> <thead><tr><td>File</td><td>Purpose</td></tr></thead> <tr><td><tt><b>scan-build</b></tt></td><td>Script for running the analyzer over a project build. <b>This is the only file you care about.</b></td></tr> <tr><td><tt>ccc-analyzer</tt></td><td>GCC interceptor (called by scan-build)</td></tr> @@ -60,12 +73,16 @@ builds of the analyzer expand to the following files that are taken from the <tr><td><tt>sorttable.js</tt></td><td>JavaScript used for displaying error reports</td></tr> </table> -<p> Using the analyzer involves executing <tt>scan-build</tt> (see <a -href="#BasicUsage">Basic Usage</a>). <tt>scan-build</tt> will first look for a -<tt>clang</tt> executable in the same directory as <tt>scan-build</tt>, and then -search your path. If one is using the analyzer directly from the Clang sources, -it suffices to just directly execute <tt>scan-build</tt> in the <tt>utils</tt> -directory. No other special installation is needed.</p> +<h3>Other Platforms (Building the Analyzer from Source)</h3> + +<p>Packaged builds simply consist of a few files from the Clang source tree, +meaning that <b>anyone</b> who can build Clang can use the static analyzer. +Please see the <a href="get_started.html">Getting Started</a> page for more +details on downloading and compiling Clang.</p> + +<p>All files used by the analyzer (and included in packaged builds; <a +href="#package">see above</a>) other than a compiled <tt>clang</tt> executable +are found in the <tt>utils</tt> subdirectory in the Clang tree.</p> <h2 id="BasicUsage">Basic Usage</h2> @@ -125,6 +142,10 @@ options prefix the build command. For example:</p> <table> <thead><tr><td>Option</td><td>Description</td></tr></thead> + <tr><td><b>-a</b></td> + <td>The analysis to run. The default analysis is <i>checker-cfref</i>. Valid options are: <i>checker-cfref</i>, <i>fsyntax-only</i>. + These translate into options passed down to the <tt>clang</tt> executable, and currently this option is mainly used for debugging.</td></tr> + <tr><td><b>-o</b></td><td>Target directory for HTML report files. Subdirectories will be created as needed to represent separate "runs" of the analyzer. If this option is not specified, a directory is created in <tt>/tmp</tt> to store the @@ -137,7 +158,7 @@ reports.</td><tr> <tt>xcodebuild</tt>.</p> <p>This is a convenience option; one can specify this behavior directly using build options.</p></td></tr> - <tr><td><b>-v<b></td><td>Verbose output from scan-build and the analyzer. <b>A second + <tr><td><b>-v<b></td><td>Verbose output from scan-build and the analyzer. <b>A second and third "-v" increases verbosity</b>, and is useful for filing bug reports against the analyzer.</td></tr> <tr><td><b>-V</b></td><td>View analysis results in a web browser when the build command completes.</td></tr> @@ -153,6 +174,9 @@ arguments:</p> OPTIONS: + -a - The analysis to run. The default is 'checker-cfref'. + Valid options are: 'checker-cfref', 'fsyntax-only' + -o - Target directory for HTML report files. Subdirectories will be created as needed to represent separate "runs" of the analyzer. If this option is not specified, a directory @@ -249,7 +273,13 @@ report bugs of this kind). <h3>Filing Bugs</h3> We encourage users to file bug reports for any problems that they encounter. -Apple-internal users should file bugs in Radar against the <b>llvm - clang</b> -component. External-Apple users should file bugs in <a -href="http://llvm.org/bugs/enter_bug.cgi?product=clang">LLVM's Bugzilla against -clang</a>. + +<p><b>Outside Apple</b>: Please <a +href="http://llvm.org/bugs/enter_bug.cgi?product=clang">file bugs</a> (against +Clang) in LLVM's Bugzilla database.</p> + +<p><b>Apple-internal</b>: Please file bugs in Radar against the <b>llvm - clang</b> +component.</p> + +</body> +</html>
\ No newline at end of file |