<!-- Creator : groff version 1.22.3 --> <!-- CreationDate: Thu Jun 7 16:35:58 2018 --> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta name="generator" content="groff -Thtml, see www.gnu.org"> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <meta name="Content-Style" content="text/css"> <style type="text/css"> p { margin-top: 0; margin-bottom: 0; vertical-align: top } pre { margin-top: 0; margin-bottom: 0; vertical-align: top } table { margin-top: 0; margin-bottom: 0; vertical-align: top } h1 { text-align: center } </style> <title>infer-analyze</title> </head> <body> <h1 align="center">infer-analyze</h1> <a href="#NAME">NAME</a><br> <a href="#SYNOPSIS">SYNOPSIS</a><br> <a href="#DESCRIPTION">DESCRIPTION</a><br> <a href="#OPTIONS">OPTIONS</a><br> <a href="#BUCK FLAVORS OPTIONS">BUCK FLAVORS OPTIONS</a><br> <a href="#BUFFER OVERRUN OPTIONS">BUFFER OVERRUN OPTIONS</a><br> <a href="#CLANG OPTIONS">CLANG OPTIONS</a><br> <a href="#CRASHCONTEXT OPTIONS">CRASHCONTEXT OPTIONS</a><br> <a href="#JAVA OPTIONS">JAVA OPTIONS</a><br> <a href="#QUANDARY CHECKER OPTIONS">QUANDARY CHECKER OPTIONS</a><br> <a href="#RACERD CHECKER OPTIONS">RACERD CHECKER OPTIONS</a><br> <a href="#SIOF CHECKER OPTIONS">SIOF CHECKER OPTIONS</a><br> <a href="#ENVIRONMENT">ENVIRONMENT</a><br> <a href="#FILES">FILES</a><br> <a href="#SEE ALSO">SEE ALSO</a><br> <hr> <h2>NAME <a name="NAME"></a> </h2> <p style="margin-left:11%; margin-top: 1em">infer-analyze - analyze the files captured by infer</p> <h2>SYNOPSIS <a name="SYNOPSIS"></a> </h2> <p style="margin-left:11%; margin-top: 1em"><b>infer analyze</b> <i>[options]</i> <b><br> infer</b> <i>[options]</i></p> <h2>DESCRIPTION <a name="DESCRIPTION"></a> </h2> <p style="margin-left:11%; margin-top: 1em">Analyze the files captured in the project results directory and report.</p> <h2>OPTIONS <a name="OPTIONS"></a> </h2> <p style="margin-left:11%; margin-top: 1em"><b>--analyzer</b>,<b>-a</b> <i>{ checkers | infer | capture | compile | crashcontext | <br> linters }</i></p> <p style="margin-left:17%;">Specify which analyzer to run (only one at a time is supported):</p> <p style="margin-left:11%;">- <b>biabduction</b>: run the bi-abduction based checker only, in <br> particular to check for memory errors <br> - <b>checkers</b>: run the default checkers, including the bi-abduction <br> based checker for memory errors (default) <br> - <b>infer</b>: alias for <b>biabduction</b> <br> - <b>linters</b>: run linters based on the ast only (clang only, <br> activated by default) <br> - <b>capture</b>: similar to specifying the <b>capture</b> subcommand <br> (DEPRECATED) <br> - <b>compile</b>: similar to specifying the <b>compile</b> subcommand <br> (DEPRECATED) <br> - <b>crashcontext</b>: experimental (see <b>--crashcontext</b>) <b><br> --no-annotation-reachability</b></p> <p style="margin-left:17%;">Deactivates: the annotation reachability checker. Given a pair of source and sink annotation, e.g. @PerformanceCritical and @Expensive, this checker will warn whenever some method annotated with @PerformanceCritical calls, directly or indirectly, another method annotated with @Expensive (Conversely: <b>--annotation-reachability</b>)</p> <p style="margin-left:11%;"><b>--annotation-reachability-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--annotation-reachability</b> and disable all other checkers (Conversely: <b>--no-annotation-reachability-only</b>)</p> <p style="margin-left:11%;"><b>--no-biabduction</b></p> <p style="margin-left:17%;">Deactivates: the separation logic based bi-abduction analysis using the checkers framework (Conversely: <b>--biabduction</b>)</p> <p style="margin-left:11%;"><b>--biabduction-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--biabduction</b> and disable all other checkers (Conversely: <b>--no-biabduction-only</b>)</p> <p style="margin-left:11%;"><b>--bufferoverrun</b></p> <p style="margin-left:17%;">Activates: the buffer overrun analysis (Conversely: <b>--no-bufferoverrun</b>)</p> <p style="margin-left:11%;"><b>--bufferoverrun-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--bufferoverrun</b> and disable all other checkers (Conversely: <b>--no-bufferoverrun-only</b>)</p> <p style="margin-left:11%;"><b>--changed-files-index</b> <i>file</i></p> <p style="margin-left:17%;">Specify the file containing the list of source files from which reactive analysis should start. Source files should be specified relative to project root or be absolute</p> <p style="margin-left:11%;"><b>--check-nullable</b></p> <p style="margin-left:17%;">Activates: checks that values annotated with nullable are always checked for null before dereference (Conversely: <b>--no-check-nullable</b>)</p> <p style="margin-left:11%;"><b>--check-nullable-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--check-nullable</b> and disable all other checkers (Conversely: <b>--no-check-nullable-only</b>)</p> <p style="margin-left:11%;"><b>--continue</b></p> <p style="margin-left:17%;">Activates: Continue the capture for the reactive analysis, increasing the changed files/procedures. (If a procedure was changed beforehand, keep the changed marking.) (Conversely: <b>--no-continue</b>)</p> <p style="margin-left:11%;"><b>--cost</b></p> <p style="margin-left:17%;">Activates: checker for performance cost analysis (Conversely: <b>--no-cost</b>)</p> <p style="margin-left:11%;"><b>--cost-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--cost</b> and disable all other checkers (Conversely: <b>--no-cost-only</b>)</p> <p style="margin-left:11%;"><b>--crashcontext</b></p> <p style="margin-left:17%;">Activates: the crashcontext checker for Java stack trace context reconstruction (Conversely: <b>--no-crashcontext</b>)</p> <p style="margin-left:11%;"><b>--crashcontext-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--crashcontext</b> and disable all other checkers (Conversely: <b>--no-crashcontext-only</b>)</p> <p style="margin-left:11%;"><b>--debug</b>,<b>-g</b></p> <p style="margin-left:17%;">Activates: Debug mode (also sets <b>--debug-level 2</b>, <b>--developer-mode</b>, <b>--no-filtering</b>, <b>--print-buckets</b>, <b>--print-types</b>, <b>--reports-include-ml-loc</b>, <b>--no-only-cheap-debug</b>, <b>--trace-error</b>, <b>--write-dotty</b>, <b>--write-html</b>) (Conversely: <b>--no-debug</b> | <b>-G</b>)</p> <p style="margin-left:11%;"><b>--debug-level</b> <i>level</i></p> <p style="margin-left:17%;">Debug level (sets <b>--bo-debug</b> <i>level</i>, <b>--debug-level-analysis</b> <i>level</i>, <b>--debug-level-capture</b> <i>level</i>, <b>--debug-level-linters</b> <i>level</i>):</p> <p style="margin-left:11%;">- 0: only basic debugging enabled <br> - 1: verbose debugging enabled <br> - 2: very verbose debugging enabled <b><br> --debug-level-analysis</b> <i>int</i></p> <p style="margin-left:17%;">Debug level for the analysis. See <b>--debug-level</b> for accepted values. (default: <i>0</i>)</p> <p style="margin-left:11%;"><b>--debug-level-capture</b> <i>int</i></p> <p style="margin-left:17%;">Debug level for the capture. See <b>--debug-level</b> for accepted values. (default: <i>0</i>)</p> <p style="margin-left:11%;"><b>--debug-level-linters</b> <i>int</i></p> <p style="margin-left:17%;">Debug level for the linters. See <b>--debug-level</b> for accepted values. (default: <i>0</i>)</p> <p style="margin-left:11%;"><b>--no-default-checkers</b></p> <p style="margin-left:17%;">Deactivates: Default checkers: <b>--annotation-reachability</b>, <b>--biabduction</b>, <b>--fragment-retains-view</b>, <b>--immutable-cast</b>, <b>--linters</b>, <b>--liveness</b>, <b>--ownership</b>, <b>--printf-args</b>, <b>--racerd</b>, <b>--siof</b>, <b>--uninit</b> (Conversely: <b>--default-checkers</b>)</p> <p style="margin-left:11%;"><b>--eradicate</b></p> <p style="margin-left:17%;">Activates: the eradicate @Nullable checker for Java annotations (Conversely: <b>--no-eradicate</b>)</p> <p style="margin-left:11%;"><b>--eradicate-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--eradicate</b> and disable all other checkers (Conversely: <b>--no-eradicate-only</b>)</p> <p style="margin-left:11%;"><b>--no-fragment-retains-view</b></p> <p style="margin-left:17%;">Deactivates: detects when Android fragments are not explicitly nullified before becoming unreabable (Conversely: <b>--fragment-retains-view</b>)</p> <p style="margin-left:11%;"><b>--fragment-retains-view-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--fragment-retains-view</b> and disable all other checkers (Conversely: <b>--no-fragment-retains-view-only</b>)</p> <p style="margin-left:11%;"><b>--help</b></p> <p style="margin-left:17%;">Show this manual</p> <p style="margin-left:11%;"><b>--help-format</b> <i>{ auto | groff | pager | plain }</i></p> <p style="margin-left:17%;">Show this help in the specified format. <b>auto</b> sets the format to <b>plain</b> if the environment variable <b>TERM</b> is "dumb" or undefined, and to <b>pager</b> otherwise. (default: <i>auto</i>)</p> <p style="margin-left:11%;"><b>--help-full</b></p> <p style="margin-left:17%;">Show this manual with all internal options in the INTERNAL OPTIONS section</p> <p style="margin-left:11%;"><b>--no-immutable-cast</b></p> <p style="margin-left:17%;">Deactivates: the detection of object cast from immutable type to mutable type. For instance, it will detect cast from ImmutableList to List, ImmutableMap to Map, and ImmutableSet to Set. (Conversely: <b>--immutable-cast</b>)</p> <p style="margin-left:11%;"><b>--immutable-cast-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--immutable-cast</b> and disable all other checkers (Conversely: <b>--no-immutable-cast-only</b>)</p> <p style="margin-left:11%;"><b>--jobs</b>,<b>-j</b> <i>int</i></p> <p style="margin-left:17%;">Run the specified number of analysis jobs simultaneously (default: <i>4</i>)</p> <p style="margin-left:11%;"><b>--keep-going</b></p> <p style="margin-left:17%;">Activates: Keep going when the analysis encounters a failure (Conversely: <b>--no-keep-going</b>)</p> <p style="margin-left:11%;"><b>--no-linters</b></p> <p style="margin-left:17%;">Deactivates: syntactic linters (Conversely: <b>--linters</b>)</p> <p style="margin-left:11%;"><b>--linters-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--linters</b> and disable all other checkers (Conversely: <b>--no-linters-only</b>)</p> <p style="margin-left:11%;"><b>--litho</b></p> <p style="margin-left:17%;">Activates: Experimental checkers supporting the Litho framework (Conversely: <b>--no-litho</b>)</p> <p style="margin-left:11%;"><b>--litho-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--litho</b> and disable all other checkers (Conversely: <b>--no-litho-only</b>)</p> <p style="margin-left:11%;"><b>--no-liveness</b></p> <p style="margin-left:17%;">Deactivates: the detection of dead stores and unused variables (Conversely: <b>--liveness</b>)</p> <p style="margin-left:11%;"><b>--liveness-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--liveness</b> and disable all other checkers (Conversely: <b>--no-liveness-only</b>)</p> <p style="margin-left:11%;"><b>--no-ownership</b></p> <p style="margin-left:17%;">Deactivates: the detection of C++ lifetime bugs (Conversely: <b>--ownership</b>)</p> <p style="margin-left:11%;"><b>--ownership-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--ownership</b> and disable all other checkers (Conversely: <b>--no-ownership-only</b>)</p> <p style="margin-left:11%;"><b>--print-active-checkers</b></p> <p style="margin-left:17%;">Activates: Print the active checkers before starting the analysis (Conversely: <b>--no-print-active-checkers</b>)</p> <p style="margin-left:11%;"><b>--print-logs</b></p> <p style="margin-left:17%;">Activates: Also log messages to stdout and stderr (Conversely: <b>--no-print-logs</b>)</p> <p style="margin-left:11%;"><b>--no-printf-args</b></p> <p style="margin-left:17%;">Deactivates: the detection of mismatch between the Java printf format strings and the argument types For, example, this checker will warn about the type error in ’printf("Hello %d", "world")’ (Conversely: <b>--printf-args</b>)</p> <p style="margin-left:11%;"><b>--printf-args-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--printf-args</b> and disable all other checkers (Conversely: <b>--no-printf-args-only</b>)</p> <p style="margin-left:11%;"><b>--project-root</b>,<b>-C</b> <i>dir</i></p> <p style="margin-left:17%;">Specify the root directory of the project (default: <i>/home/jul/infer.fb</i>)</p> <p style="margin-left:11%;"><b>--quandary</b></p> <p style="margin-left:17%;">Activates: the quandary taint analysis (Conversely: <b>--no-quandary</b>)</p> <p style="margin-left:11%;"><b>--quandary-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--quandary</b> and disable all other checkers (Conversely: <b>--no-quandary-only</b>)</p> <p style="margin-left:11%;"><b>--quiet</b>,<b>-q</b></p> <p style="margin-left:17%;">Activates: Do not print specs on standard output (default: only print for the <b>report</b> command) (Conversely: <b>--no-quiet</b> | <b>-Q</b>)</p> <p style="margin-left:11%;"><b>--no-racerd</b></p> <p style="margin-left:17%;">Deactivates: the RacerD thread safety analysis (Conversely: <b>--racerd</b>)</p> <p style="margin-left:11%;"><b>--racerd-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--racerd</b> and disable all other checkers (Conversely: <b>--no-racerd-only</b>)</p> <p style="margin-left:11%;"><b>--reactive</b>,<b>-r</b></p> <p style="margin-left:17%;">Activates: Reactive mode: the analysis starts from the files captured since the <i>infer</i> command started (Conversely: <b>--no-reactive</b> | <b>-R</b>)</p> <p style="margin-left:11%;"><b>--no-report</b></p> <p style="margin-left:17%;">Deactivates: Run the reporting phase once the analysis has completed (Conversely: <b>--report</b>)</p> <p style="margin-left:11%;"><b>--report-hook</b> <i>script</i></p> <p style="margin-left:17%;">Specify a script to be executed after the analysis results are written. This script will be passed, <b>--issues-json</b>, <b>--issues-txt</b>, <b>--issues-xml</b>, <b>--project-root</b>, and <b>--results-dir</b>. (default: <i>/home/jul/infer.fb/infer/bin/../lib/python/report.py</i>)</p> <p style="margin-left:11%;"><b>--results-dir</b>,<b>-o</b> <i>dir</i></p> <p style="margin-left:17%;">Write results and internal files in the specified directory (default: <i>/home/jul/infer.fb/infer-out</i>)</p> <p style="margin-left:11%;"><b>--no-siof</b></p> <p style="margin-left:17%;">Deactivates: the Static Initialization Order Fiasco analysis (C++ only) (Conversely: <b>--siof</b>)</p> <p style="margin-left:11%;"><b>--siof-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--siof</b> and disable all other checkers (Conversely: <b>--no-siof-only</b>)</p> <p style="margin-left:11%;"><b>--starvation</b></p> <p style="margin-left:17%;">Activates: starvation analysis (Conversely: <b>--no-starvation</b>)</p> <p style="margin-left:11%;"><b>--starvation-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--starvation</b> and disable all other checkers (Conversely: <b>--no-starvation-only</b>)</p> <p style="margin-left:11%;"><b>--suggest-nullable</b></p> <p style="margin-left:17%;">Activates: Nullable annotation sugesstions analysis (Conversely: <b>--no-suggest-nullable</b>)</p> <p style="margin-left:11%;"><b>--suggest-nullable-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--suggest-nullable</b> and disable all other checkers (Conversely: <b>--no-suggest-nullable-only</b>)</p> <p style="margin-left:11%;"><b>--no-uninit</b></p> <p style="margin-left:17%;">Deactivates: checker for use of uninitialized values (Conversely: <b>--uninit</b>)</p> <p style="margin-left:11%;"><b>--uninit-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--uninit</b> and disable all other checkers (Conversely: <b>--no-uninit-only</b>)</p> <h2>BUCK FLAVORS OPTIONS <a name="BUCK FLAVORS OPTIONS"></a> </h2> <p style="margin-left:11%; margin-top: 1em"><b>--merge</b></p> <p style="margin-left:17%;">Activates: Merge the captured results directories specified in the dependency file (Conversely: <b>--no-merge</b>)</p> <h2>BUFFER OVERRUN OPTIONS <a name="BUFFER OVERRUN OPTIONS"></a> </h2> <p style="margin-left:11%; margin-top: 1em"><b>--bo-debug</b> <i>int</i></p> <p style="margin-left:17%;">Debug level for buffer-overrun checker (0-4) (default: <i>0</i>)</p> <h2>CLANG OPTIONS <a name="CLANG OPTIONS"></a> </h2> <p style="margin-left:11%; margin-top: 1em"><b>--cxx-scope-guards</b> <i>json</i></p> <p style="margin-left:17%;">Specify scope guard classes that can be read only by destructors without being reported as dead stores. (default: <i>[]</i>)</p> <p style="margin-left:11%;"><b>--ml-buckets</b> <i>,-separated sequence of { all | cf | arc | narc | cpp | <br> unknown_origin }</i></p> <p style="margin-left:17%;">Specify the memory leak buckets to be checked in C++:</p> <p style="margin-left:11%;">- <b>cpp</b> from C++ code <br> (default: <i>cf</i>) <b><br> --unsafe-malloc</b></p> <p style="margin-left:17%;">Activates: Assume that malloc(3) never returns null. (Conversely: <b>--no-unsafe-malloc</b>)</p> <h2>CRASHCONTEXT OPTIONS <a name="CRASHCONTEXT OPTIONS"></a> </h2> <p style="margin-left:11%; margin-top: 1em"><b>--stacktrace</b> <i>file</i></p> <p style="margin-left:17%;">File path containing a json-encoded Java crash stacktrace. Used to guide the analysis (only with '-a crashcontext'). See tests/codetoanalyze/java/crashcontext/*.json for examples of the expected format.</p> <p style="margin-left:11%;"><b>--stacktraces-dir</b> <i>dir</i></p> <p style="margin-left:17%;">Directory path containing multiple json-encoded Java crash stacktraces. Used to guide the analysis (only with '-a crashcontext'). See tests/codetoanalyze/java/crashcontext/*.json for examples of the expected format.</p> <h2>JAVA OPTIONS <a name="JAVA OPTIONS"></a> </h2> <p style="margin-left:11%; margin-top: 1em"><b>--annotation-reachability-custom-pairs</b> <i>json</i></p> <p style="margin-left:17%;">Specify custom sources/sink for the annotation reachability checker</p> <p style="margin-left:11%;">Example format: for custom annotations <br> com.my.annotation.{Source1,Source2,Sink1} <br> { "sources" : ["Source1", "Source2"], "sink" : "Sink1" } <br> (default: <i>[]</i>) <b><br> --external-java-packages</b> <i>+prefix</i></p> <p style="margin-left:17%;">Specify a list of Java package prefixes for external Java packages. If set, the analysis will not report non-actionable warnings on those packages.</p> <h2>QUANDARY CHECKER OPTIONS <a name="QUANDARY CHECKER OPTIONS"></a> </h2> <p style="margin-left:11%; margin-top: 1em"><b>--quandary-endpoints</b> <i>json</i></p> <p style="margin-left:17%;">Specify endpoint classes for Quandary (default: <i>[]</i>)</p> <p style="margin-left:11%;"><b>--quandary-sanitizers</b> <i>json</i></p> <p style="margin-left:17%;">Specify custom sanitizers for Quandary (default: <i>[]</i>)</p> <p style="margin-left:11%;"><b>--quandary-sinks</b> <i>json</i></p> <p style="margin-left:17%;">Specify custom sinks for Quandary (default: <i>[]</i>)</p> <p style="margin-left:11%;"><b>--quandary-sources</b> <i>json</i></p> <p style="margin-left:17%;">Specify custom sources for Quandary (default: <i>[]</i>)</p> <h2>RACERD CHECKER OPTIONS <a name="RACERD CHECKER OPTIONS"></a> </h2> <p style="margin-left:11%; margin-top: 1em"><b>--threadsafe-aliases</b> <i>json</i></p> <p style="margin-left:17%;">Specify custom annotations that should be considered aliases of @ThreadSafe (default: <i>[]</i>)</p> <h2>SIOF CHECKER OPTIONS <a name="SIOF CHECKER OPTIONS"></a> </h2> <p style="margin-left:11%; margin-top: 1em"><b>--siof-check-iostreams</b></p> <p style="margin-left:17%;">Activates: Do not assume that iostreams (cout, cerr, ...) are always initialized. The default is to assume they are always initialized when <b>--cxx-infer-headers</b> is false to avoid false positives due to lack of models of the proper initialization of io streams. However, if your program compiles against a recent libstdc++ then the infer models are not needed for precision and it is safe to turn this option on. (Conversely: <b>--no-siof-check-iostreams</b>)</p> <p style="margin-left:11%;"><b>--siof-safe-methods</b> <i>+string</i></p> <p style="margin-left:17%;">Methods that are SIOF-safe; "foo::bar" will match "foo::bar()", "foo<int>::bar()", etc. (can be specified multiple times)</p> <h2>ENVIRONMENT <a name="ENVIRONMENT"></a> </h2> <p style="margin-left:11%; margin-top: 1em"><b>INFER_ARGS</b>, <b>INFERCONFIG</b>, <b>INFER_STRICT_MODE</b></p> <p style="margin-left:17%;">See the ENVIRONMENT section in the manual of <b>infer</b>(1).</p> <h2>FILES <a name="FILES"></a> </h2> <p style="margin-left:11%; margin-top: 1em"><b>.inferconfig</b></p> <p style="margin-left:17%;">See the FILES section in the manual of <b>infer</b>(1).</p> <h2>SEE ALSO <a name="SEE ALSO"></a> </h2> <p style="margin-left:11%; margin-top: 1em"><b>infer-report</b>(1), <b>infer-run</b>(1)</p> <hr> </body> </html>