|
|
|
<!-- Creator : groff version 1.22.4 -->
|
|
|
|
<!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</title>
|
|
|
|
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
|
|
|
|
<h1 align="center">infer</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="#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 - static
|
|
|
|
analysis for Java and C/C++/Objective-C/Objective-C++</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 capture</b> <i>[options]</i> <b><br>
|
|
|
|
infer compile</b> <i>[options]</i> <b><br>
|
|
|
|
infer help</b> <i>[options]</i> <b><br>
|
|
|
|
infer explore</b> <i>[options]</i> <b><br>
|
|
|
|
infer report</b> <i>[options]</i> <b><br>
|
|
|
|
infer reportdiff</b> <i>[options]</i> <b><br>
|
|
|
|
infer run</b> <i>[options]</i> <b><br>
|
|
|
|
infer --compilation-database[-escaped]</b> <i>file
|
|
|
|
[options]</i> <b><br>
|
|
|
|
infer</b> <i>[options]</i> <b>-- compile command <br>
|
|
|
|
infer</b> <i>[options]</i></p>
|
|
|
|
|
|
|
|
<h2>DESCRIPTION
|
|
|
|
<a name="DESCRIPTION"></a>
|
|
|
|
</h2>
|
|
|
|
|
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em">Infer is a
|
|
|
|
static analyzer. Given a collection of source files written
|
|
|
|
in Java or in languages of the C family, and a command to
|
|
|
|
build them, infer produces a list of potential issues.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em">Infer consists
|
|
|
|
of a collection of tools referenced in the <i>SEE ALSO</i>
|
|
|
|
section of this manual. See their respective manuals for
|
|
|
|
more information.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em">When run
|
|
|
|
without a subcommand, and if a compilation command is
|
|
|
|
specified via the <b>--</b> option or one of the
|
|
|
|
<b>--clang-compilation-database[-escaped]</b> options, then
|
|
|
|
<b>infer</b> behaves as <b>infer-run</b>(1). Otherwise,
|
|
|
|
<b>infer</b> behaves as <b>infer-analyze</b>(1).</p>
|
|
|
|
|
|
|
|
<h2>OPTIONS
|
|
|
|
<a name="OPTIONS"></a>
|
|
|
|
</h2>
|
|
|
|
|
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em">Every infer
|
|
|
|
command accepts the arguments from all the other infer
|
|
|
|
commands.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em">Options are
|
|
|
|
read from the <b>.inferconfig</b> file, then from the
|
|
|
|
<b>INFER_ARGS</b> environment variable, then from the
|
|
|
|
command line. Options in <b>INFER_ARGS</b> take precedence
|
|
|
|
over options in <b>.inferconfig</b>, and options passed on
|
|
|
|
the command line take precedence over options in
|
|
|
|
<b>INFER_ARGS</b>. See the <i>ENVIRONMENT</i> and
|
|
|
|
<i>FILES</i> sections of this manual for more
|
|
|
|
information.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em">Options can be
|
|
|
|
specified inside an argument file <i>file</i> by passing
|
|
|
|
<b>@</b><i>file</i> as argument. The format is one option
|
|
|
|
per line, and enclosing single ' and double " quotes
|
|
|
|
are ignored.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em">Options without
|
|
|
|
a default value (e.g., <b>--linter</b>) and options with
|
|
|
|
list-like values (e.g., <b>--Xbuck</b>) all have a
|
|
|
|
corresponding <b>--option-reset</b> flag that resets their
|
|
|
|
values to nothing or the empty list, respectively. For
|
|
|
|
instance, <b>--Xbuck-reset</b> will cancel any previous
|
|
|
|
<b>--Xbuck</b> option passed to infer.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em">See the manuals
|
|
|
|
of individual infer commands for details about their
|
|
|
|
supported options. The following is a list of all the
|
|
|
|
supported options (see also <b>--help-full</b> for options
|
|
|
|
reserved for internal use). <b><br>
|
|
|
|
--annotation-reachability</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: checker
|
|
|
|
annotation-reachability: 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>--no-annotation-reachability</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--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>
|
|
|
|
See also <b>infer-analyze</b>(1). <b><br>
|
|
|
|
--annotation-reachability-cxx</b> <i>json</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Specify annotation reachability
|
|
|
|
analyses to be performed on C/C++/ObjC code. Each entry is a
|
|
|
|
JSON object whose key is the issue name. "sources"
|
|
|
|
and "sinks" can be specified either by symbol
|
|
|
|
(including regexps) or path prefix. "sinks"
|
|
|
|
optionally can specify "overrides" (by symbol or
|
|
|
|
path prefix) that block the reachability analysis when hit.
|
|
|
|
Example:</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">{ <br>
|
|
|
|
"ISOLATED_REACHING_CONNECT": { <br>
|
|
|
|
"doc_url": <br>
|
|
|
|
|
|
|
|
"http:://example.com/issue/doc/optional_link.html",
|
|
|
|
<br>
|
|
|
|
"sources": { <br>
|
|
|
|
"desc": "Code that should not call connect
|
|
|
|
[optional]", <br>
|
|
|
|
"paths": [ "isolated/" ] <br>
|
|
|
|
}, <br>
|
|
|
|
"sinks": { <br>
|
|
|
|
"symbols": [ "connect" ], <br>
|
|
|
|
"overrides": { "symbol_regexps": [
|
|
|
|
".*::Trusted::.*" ] } <br>
|
|
|
|
} <br>
|
|
|
|
} <br>
|
|
|
|
} <br>
|
|
|
|
This will cause us to create a new ISOLATED_REACHING_CONNECT
|
|
|
|
<br>
|
|
|
|
issue for every function whose source path starts with
|
|
|
|
"isolated/" <br>
|
|
|
|
that may reach the function named "connect",
|
|
|
|
ignoring paths that <br>
|
|
|
|
go through a symbol matching the OCaml regexp
|
|
|
|
".*::Trusted::.*". <br>
|
|
|
|
See also <b>infer-analyze</b>(1). <b><br>
|
|
|
|
--annotation-reachability-cxx-sources</b> <i>json</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Override sources in all cxx
|
|
|
|
annotation reachability specs with the given sources
|
|
|
|
spec</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--annotation-reachability-only</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Enable
|
|
|
|
annotation-reachability and disable all other checkers
|
|
|
|
(Conversely: <b>--no-annotation-reachability-only</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--append-buck-flavors</b> <i>+string</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Additional Buck flavors to
|
|
|
|
append to targets discovered by the
|
|
|
|
<b>--buck-compilation-database</b> option.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--no-biabduction</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Deactivates: checker
|
|
|
|
biabduction: This analysis deals with a range of issues,
|
|
|
|
many linked to memory safety. (Conversely:
|
|
|
|
<b>--biabduction</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--biabduction-only</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Enable biabduction
|
|
|
|
and disable all other checkers (Conversely:
|
|
|
|
<b>--no-biabduction-only</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--biabduction-unsafe-malloc</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Assume that
|
|
|
|
malloc(3) never returns null. (Conversely:
|
|
|
|
<b>--no-biabduction-unsafe-malloc</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--biabduction-write-dotty</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Produce dotty files
|
|
|
|
for specs and retain cycles reports in infer-out/captured.
|
|
|
|
(Conversely: <b>--no-biabduction-write-dotty</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--bo-debug</b> <i>int</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Debug level for buffer-overrun
|
|
|
|
checker (0-4)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--bo-field-depth-limit</b> <i>int</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Limit of field depth of
|
|
|
|
abstract location in buffer-overrun checker</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--bootclasspath</b> <i>string</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Specify the Java
|
|
|
|
bootclasspath</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--buck-blacklist</b> <i>+regex</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Skip capture of files matched
|
|
|
|
by the specified regular expression. Only the clang,
|
|
|
|
non-compilation-database</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">Buck integration is supported,
|
|
|
|
not Java. <br>
|
|
|
|
See also <b>infer-capture</b>(1) and <b>infer-run</b>(1).
|
|
|
|
<b><br>
|
|
|
|
--buck-clang</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Buck integration for
|
|
|
|
clang-based targets (C/C++/Objective-C/Objective-C++).
|
|
|
|
(Conversely: <b>--no-buck-clang</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--buck-compilation-database</b> <i>{ no-deps | deps
|
|
|
|
}</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Buck integration using the
|
|
|
|
compilation database, with or without dependencies. Only
|
|
|
|
includes clang targets, as per Buck's
|
|
|
|
<i>#compilation-database</i> flavor.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--buck-compilation-database-depth</b> <i>int</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Depth of dependencies used by
|
|
|
|
the <b>--buck-compilation-database deps</b> option. By
|
|
|
|
default, all recursive dependencies are captured.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--buck-java-flavor</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Buck integration for
|
|
|
|
Java which uses the buck flavor #infer-java-capture instead
|
|
|
|
of genrules like buck-java. (Conversely:
|
|
|
|
<b>--no-buck-java-flavor</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--buck-java-flavor-suppress-config</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Suppress setting
|
|
|
|
buck config values for the infer binary and its version in
|
|
|
|
the buck-java-flavor integration. (Conversely:
|
|
|
|
<b>--no-buck-java-flavor-suppress-config</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--buck-java-heap-size-gb</b> <i>int</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Explicitly set the size of the
|
|
|
|
Java heap of Buck processes, in gigabytes.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--buck-merge-all-deps</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Find and merge all
|
|
|
|
infer dependencies produced by buck. Use this flag if infer
|
|
|
|
doesn't find any files to analyze after a successful
|
|
|
|
capture. Only valid for <b>--buck-clang</b>. (Conversely:
|
|
|
|
<b>--no-buck-merge-all-deps</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--buck-targets-blacklist</b> <i>+regex</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Skip capture of buck targets
|
|
|
|
matched by the specified regular expression. Only valid for
|
|
|
|
<b>--buck-compilation-database</b>.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1) and <b>infer-run</b>(1). <b><br>
|
|
|
|
--bufferoverrun</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: checker
|
|
|
|
bufferoverrun: InferBO is a detector for out-of-bounds array
|
|
|
|
accesses. (Conversely: <b>--no-bufferoverrun</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--bufferoverrun-only</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Enable bufferoverrun
|
|
|
|
and disable all other checkers (Conversely:
|
|
|
|
<b>--no-bufferoverrun-only</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--capture-blacklist</b> <i>regex</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Skip capture of files matched
|
|
|
|
by the specified OCaml regular expression (only supported by
|
|
|
|
the javac integration for now).</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1) and <b>infer-run</b>(1). <b><br>
|
|
|
|
--censor-report</b> <i>+string</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Specify a filter for issues to
|
|
|
|
be censored by adding a 'censored_reason' field in the json
|
|
|
|
report. Infer will not report censored issues on the console
|
|
|
|
output and in report.txt, but tools that post-process the
|
|
|
|
json report can take them into account. If multiple filters
|
|
|
|
are specified, they are applied in the order in which they
|
|
|
|
are specified. Each filter is applied to each issue
|
|
|
|
detected, and only issues which are accepted by all filters
|
|
|
|
are reported. Each filter is of the form:
|
|
|
|
‘<issue_type_regex>:<filename_regex>:<reason_string>‘.
|
|
|
|
The first two components are OCaml Str regular expressions,
|
|
|
|
with an optional ‘!‘ character prefix. If a
|
|
|
|
regex has a ‘!‘ prefix, the polarity is
|
|
|
|
inverted, and the filter becomes a "blacklist"
|
|
|
|
instead of a "whitelist". Each filter is
|
|
|
|
interpreted as an implication: an issue matches if it does
|
|
|
|
not match the ‘issue_type_regex‘ or if it does
|
|
|
|
match the ‘filename_regex‘. The filenames that
|
|
|
|
are tested by the regex are relative to the
|
|
|
|
‘--project-root‘ directory. The
|
|
|
|
‘<reason_string>‘ is a non-empty string
|
|
|
|
used to explain why the issue was filtered.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-report</b>(1)
|
|
|
|
and <b>infer-run</b>(1). <b><br>
|
|
|
|
--cfg-json</b> <i>file</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Path to CFG json file</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyzejson</b>(1). <b><br>
|
|
|
|
--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%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--clang-biniou-file</b> <i>file</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Specify a file containing the
|
|
|
|
AST of the program, in biniou format. Please note you still
|
|
|
|
need to provide a compilation command.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--clang-blacklisted-flags</b> <i>+string</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Clang flags to filter out</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--clang-blacklisted-flags-with-arg</b> <i>+string</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Clang flags (taking args) to
|
|
|
|
filter out</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--clang-compound-literal-init-limit</b> <i>int</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Limit after which
|
|
|
|
initialization of compound types (structs and arrays) is not
|
|
|
|
done element by element but using a builtin function that
|
|
|
|
each analysis has to model.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1) and <b>infer-capture</b>(1). <b><br>
|
|
|
|
--clang-yojson-file</b> <i>file</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Specify a file containing the
|
|
|
|
AST of the program, in yojson format. Please note you still
|
|
|
|
need to provide a compilation command.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--compilation-database</b> <i>+path</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">File that contain compilation
|
|
|
|
commands (can be specified multiple times)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--compilation-database-escaped</b> <i>+path</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">File that contain compilation
|
|
|
|
commands where all entries are escaped for the shell, eg
|
|
|
|
coming from Xcode (can be specified multiple times)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--config-checks-between-markers</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: checker
|
|
|
|
config-checks-between-markers: [EXPERIMENTAL] Collects
|
|
|
|
config checks between marker start and end. (Conversely:
|
|
|
|
<b>--no-config-checks-between-markers</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--config-checks-between-markers-only</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Enable
|
|
|
|
config-checks-between-markers and disable all other checkers
|
|
|
|
(Conversely:
|
|
|
|
<b>--no-config-checks-between-markers-only</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--config-impact-analysis</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: checker
|
|
|
|
config-impact-analysis: [EXPERIMENTAL] Collects function
|
|
|
|
that are called without config checks. (Conversely:
|
|
|
|
<b>--no-config-impact-analysis</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--config-impact-analysis-only</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Enable
|
|
|
|
config-impact-analysis and disable all other checkers
|
|
|
|
(Conversely: <b>--no-config-impact-analysis-only</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--config-impact-current</b> <i>path</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Config impact report of the
|
|
|
|
latest revision</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-reportdiff</b>(1). <b><br>
|
|
|
|
--config-impact-data-file</b> <i>file</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">[ConfigImpact] Specify the file
|
|
|
|
containing the config data</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-report</b>(1). <b><br>
|
|
|
|
--config-impact-issues-tests</b> <i>file</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Write a list of config impact
|
|
|
|
issues in a format suitable for config impact tests to
|
|
|
|
<i>file</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-report</b>(1). <b><br>
|
|
|
|
--config-impact-max-callees-to-print</b> <i>int</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Specify the maximum number of
|
|
|
|
unchecked callees to print in the config impact checker</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-report</b>(1)
|
|
|
|
and <b>infer-reportdiff</b>(1). <b><br>
|
|
|
|
--config-impact-previous</b> <i>path</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Config impact report of the
|
|
|
|
base revision to use for comparison</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-reportdiff</b>(1). <b><br>
|
|
|
|
--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%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--continue-analysis</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Continue the
|
|
|
|
analysis after more targets are captured by
|
|
|
|
<b>--continue</b>. The other analysis options should be
|
|
|
|
given the same before. Not compatible with
|
|
|
|
<b>--reanalyze</b> and <b>--incremental-analysis</b>.
|
|
|
|
(Conversely: <b>--no-continue-analysis</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--cost</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: checker cost:
|
|
|
|
Computes the time complexity of functions and methods. Can
|
|
|
|
be used to detect changes in runtime complexity with
|
|
|
|
‘infer reportdiff‘. (Conversely:
|
|
|
|
<b>--no-cost</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--cost-issues-tests</b> <i>file</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Write a list of cost issues in
|
|
|
|
a format suitable for cost tests to <i>file</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-report</b>(1). <b><br>
|
|
|
|
--cost-only</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Enable cost and
|
|
|
|
disable all other checkers (Conversely:
|
|
|
|
<b>--no-cost-only</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--no-cost-suppress-func-ptr</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Deactivates: Suppress printing
|
|
|
|
function pointers in cost reports (Conversely:
|
|
|
|
<b>--cost-suppress-func-ptr</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--cost-tests-only-autoreleasepool</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: [EXPERIMENTAL]
|
|
|
|
Report only autoreleasepool size results in cost tests
|
|
|
|
(Conversely:
|
|
|
|
<b>--no-cost-tests-only-autoreleasepool</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-report</b>(1)
|
|
|
|
and <b>infer-reportdiff</b>(1). <b><br>
|
|
|
|
--costs-current</b> <i>path</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Costs report of the latest
|
|
|
|
revision</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-reportdiff</b>(1). <b><br>
|
|
|
|
--costs-previous</b> <i>path</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Costs report of the base
|
|
|
|
revision to use for comparison</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-reportdiff</b>(1). <b><br>
|
|
|
|
--custom-symbols</b> <i>json</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Specify named lists of symbols
|
|
|
|
available to rules</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--no-cxx</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Deactivates: Analyze C++
|
|
|
|
methods (Conversely: <b>--cxx</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--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.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--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>--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-html</b>) (Conversely: <b>--no-debug</b> |
|
|
|
|
<b>-G</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1), <b>infer-analyzejson</b>(1),
|
|
|
|
<b><br>
|
|
|
|
infer-capture</b>(1), <b>infer-compile</b>(1),
|
|
|
|
<b>infer-report</b>(1), <b><br>
|
|
|
|
infer-reportdiff</b>(1), and <b>infer-run</b>(1). <b><br>
|
|
|
|
--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 <br>
|
|
|
|
See also <b>infer-analyze</b>(1),
|
|
|
|
<b>infer-analyzejson</b>(1), <b><br>
|
|
|
|
infer-capture</b>(1), <b>infer-compile</b>(1),
|
|
|
|
<b>infer-report</b>(1), <b><br>
|
|
|
|
infer-reportdiff</b>(1), and <b>infer-run</b>(1). <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.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1), <b>infer-analyzejson</b>(1),
|
|
|
|
<b><br>
|
|
|
|
infer-capture</b>(1), <b>infer-compile</b>(1),
|
|
|
|
<b>infer-report</b>(1), <b><br>
|
|
|
|
infer-reportdiff</b>(1), and <b>infer-run</b>(1). <b><br>
|
|
|
|
--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.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1), <b>infer-analyzejson</b>(1),
|
|
|
|
<b><br>
|
|
|
|
infer-capture</b>(1), <b>infer-compile</b>(1),
|
|
|
|
<b>infer-report</b>(1), <b><br>
|
|
|
|
infer-reportdiff</b>(1), and <b>infer-run</b>(1). <b><br>
|
|
|
|
--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.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1), <b>infer-analyzejson</b>(1),
|
|
|
|
<b><br>
|
|
|
|
infer-capture</b>(1), <b>infer-compile</b>(1),
|
|
|
|
<b>infer-report</b>(1), <b><br>
|
|
|
|
infer-reportdiff</b>(1), and <b>infer-run</b>(1). <b><br>
|
|
|
|
--no-deduplicate</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Deactivates: Apply
|
|
|
|
issue-specific deduplication during analysis and/or
|
|
|
|
reporting. (Conversely: <b>--deduplicate</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1), <b>infer-report</b>(1), and <b><br>
|
|
|
|
infer-reportdiff</b>(1). <b><br>
|
|
|
|
--no-default-checkers</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Deactivates: Default checkers:
|
|
|
|
<b>--biabduction</b>, <b>--fragment-retains-view</b>,
|
|
|
|
<b>--inefficient-keyset-iterator</b>, <b>--linters</b>,
|
|
|
|
<b>--liveness</b>, <b>--racerd</b>,
|
|
|
|
<b>--dotnet-resource-leak</b>, <b>--siof</b>,
|
|
|
|
<b>--self-in-block</b>, <b>--starvation</b> (Conversely:
|
|
|
|
<b>--default-checkers</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--no-default-linters</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Deactivates: Use the default
|
|
|
|
linters for the analysis. (Conversely:
|
|
|
|
<b>--default-linters</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--dependencies</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Translate all the
|
|
|
|
dependencies during the capture. The classes in the given
|
|
|
|
jar file will be translated. No sources needed. (Conversely:
|
|
|
|
<b>--no-dependencies</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--differential-filter-files</b> <i>string</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Specify the file containing the
|
|
|
|
list of source files for which a differential report is
|
|
|
|
desired. Source files should be specified relative to
|
|
|
|
project root or be absolute</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-report</b>(1). <b><br>
|
|
|
|
--disable-issue-type</b> <i>+issue_type</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Do not show reports coming from
|
|
|
|
this type of issue. Each checker can report a range of issue
|
|
|
|
types. This option provides fine-grained filtering over
|
|
|
|
which types of issue should be reported once the checkers
|
|
|
|
have run. In particular, note that disabling issue types
|
|
|
|
does not make the corresponding checker not run.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">Available issue types are as
|
|
|
|
follows: <br>
|
|
|
|
ARBITRARY_CODE_EXECUTION_UNDER_LOCK (enabled by default),
|
|
|
|
<br>
|
|
|
|
ARRAY_OUT_OF_BOUNDS_L1 (disabled by default), <br>
|
|
|
|
ARRAY_OUT_OF_BOUNDS_L2 (disabled by default), <br>
|
|
|
|
ARRAY_OUT_OF_BOUNDS_L3 (disabled by default), <br>
|
|
|
|
ASSIGN_POINTER_WARNING (enabled by default), <br>
|
|
|
|
AUTORELEASEPOOL_SIZE_COMPLEXITY_INCREASE (enabled by
|
|
|
|
default), <br>
|
|
|
|
AUTORELEASEPOOL_SIZE_COMPLEXITY_INCREASE_UI_THREAD (enabled
|
|
|
|
by <br>
|
|
|
|
default), <br>
|
|
|
|
AUTORELEASEPOOL_SIZE_UNREACHABLE_AT_EXIT (disabled by
|
|
|
|
default), <br>
|
|
|
|
Abduction_case_not_implemented (enabled by default), <br>
|
|
|
|
Array_of_pointsto (enabled by default), <br>
|
|
|
|
Assert_failure (enabled by default), <br>
|
|
|
|
BAD_POINTER_COMPARISON (enabled by default), <br>
|
|
|
|
BIABDUCTION_ANALYSIS_STOPS (disabled by default), <br>
|
|
|
|
BIABDUCTION_MEMORY_LEAK (disabled by default), <br>
|
|
|
|
BUFFER_OVERRUN_L1 (enabled by default), <br>
|
|
|
|
BUFFER_OVERRUN_L2 (enabled by default), <br>
|
|
|
|
BUFFER_OVERRUN_L3 (enabled by default), <br>
|
|
|
|
BUFFER_OVERRUN_L4 (disabled by default), <br>
|
|
|
|
BUFFER_OVERRUN_L5 (disabled by default), <br>
|
|
|
|
BUFFER_OVERRUN_S2 (enabled by default), <br>
|
|
|
|
BUFFER_OVERRUN_U5 (disabled by default), <br>
|
|
|
|
Bad_footprint (enabled by default), <br>
|
|
|
|
CAPTURED_STRONG_SELF (enabled by default), <br>
|
|
|
|
CHECKERS_ALLOCATES_MEMORY (enabled by default), <br>
|
|
|
|
CHECKERS_ANNOTATION_REACHABILITY_ERROR (enabled by default),
|
|
|
|
<br>
|
|
|
|
CHECKERS_CALLS_EXPENSIVE_METHOD (enabled by default), <br>
|
|
|
|
CHECKERS_EXPENSIVE_OVERRIDES_UNANNOTATED (enabled by
|
|
|
|
default), <br>
|
|
|
|
CHECKERS_FRAGMENT_RETAINS_VIEW (enabled by default), <br>
|
|
|
|
CHECKERS_IMMUTABLE_CAST (enabled by default), <br>
|
|
|
|
CHECKERS_PRINTF_ARGS (enabled by default), <br>
|
|
|
|
CLASS_CAST_EXCEPTION (disabled by default), <br>
|
|
|
|
COMPONENT_WITH_MULTIPLE_FACTORY_METHODS (enabled by
|
|
|
|
default), <br>
|
|
|
|
CONDITION_ALWAYS_FALSE (disabled by default), <br>
|
|
|
|
CONDITION_ALWAYS_TRUE (disabled by default), <br>
|
|
|
|
CONFIG_CHECKS_BETWEEN_MARKERS (disabled by default), <br>
|
|
|
|
CONFIG_IMPACT (disabled by default), <br>
|
|
|
|
CONSTANT_ADDRESS_DEREFERENCE (disabled by default), <br>
|
|
|
|
CREATE_INTENT_FROM_URI (enabled by default), <br>
|
|
|
|
CROSS_SITE_SCRIPTING (enabled by default), <br>
|
|
|
|
CXX_REFERENCE_CAPTURED_IN_OBJC_BLOCK (enabled by default),
|
|
|
|
<br>
|
|
|
|
Cannot_star (enabled by default), <br>
|
|
|
|
DANGLING_POINTER_DEREFERENCE (disabled by default), <br>
|
|
|
|
DANGLING_POINTER_DEREFERENCE_MAYBE (disabled by default),
|
|
|
|
<br>
|
|
|
|
DEADLOCK (enabled by default), <br>
|
|
|
|
DEAD_STORE (enabled by default), <br>
|
|
|
|
DIRECT_ATOMIC_PROPERTY_ACCESS (enabled by default), <br>
|
|
|
|
DISCOURAGED_WEAK_PROPERTY_CUSTOM_SETTER (enabled by
|
|
|
|
default), <br>
|
|
|
|
DIVIDE_BY_ZERO (disabled by default), <br>
|
|
|
|
DOTNET_RESOURCE_LEAK (enabled by default), <br>
|
|
|
|
DO_NOT_REPORT (enabled by default), <br>
|
|
|
|
EMPTY_VECTOR_ACCESS (enabled by default), <br>
|
|
|
|
ERADICATE_ANNOTATION_GRAPH (enabled by default), <br>
|
|
|
|
ERADICATE_BAD_NESTED_CLASS_ANNOTATION (enabled by default),
|
|
|
|
<br>
|
|
|
|
ERADICATE_CONDITION_REDUNDANT (enabled by default), <br>
|
|
|
|
ERADICATE_FIELD_NOT_INITIALIZED (enabled by default), <br>
|
|
|
|
ERADICATE_FIELD_NOT_NULLABLE (enabled by default), <br>
|
|
|
|
ERADICATE_FIELD_OVER_ANNOTATED (enabled by default), <br>
|
|
|
|
ERADICATE_INCONSISTENT_SUBCLASS_PARAMETER_ANNOTATION
|
|
|
|
(enabled <br>
|
|
|
|
by default), <br>
|
|
|
|
ERADICATE_INCONSISTENT_SUBCLASS_RETURN_ANNOTATION (enabled
|
|
|
|
by <br>
|
|
|
|
default), <br>
|
|
|
|
ERADICATE_META_CLASS_CAN_BE_NULLSAFE (disabled by default),
|
|
|
|
<br>
|
|
|
|
ERADICATE_META_CLASS_IS_NULLSAFE (disabled by default), <br>
|
|
|
|
ERADICATE_META_CLASS_NEEDS_IMPROVEMENT (disabled by
|
|
|
|
default), <br>
|
|
|
|
ERADICATE_NULLABLE_DEREFERENCE (enabled by default), <br>
|
|
|
|
ERADICATE_PARAMETER_NOT_NULLABLE (enabled by default), <br>
|
|
|
|
ERADICATE_REDUNDANT_NESTED_CLASS_ANNOTATION (enabled by <br>
|
|
|
|
default), <br>
|
|
|
|
ERADICATE_RETURN_NOT_NULLABLE (enabled by default), <br>
|
|
|
|
ERADICATE_RETURN_OVER_ANNOTATED (enabled by default), <br>
|
|
|
|
ERADICATE_UNCHECKED_USAGE_IN_NULLSAFE (enabled by default),
|
|
|
|
<br>
|
|
|
|
ERADICATE_UNVETTED_THIRD_PARTY_IN_NULLSAFE (enabled by <br>
|
|
|
|
default), <br>
|
|
|
|
EXECUTION_TIME_COMPLEXITY_INCREASE (enabled by default),
|
|
|
|
<br>
|
|
|
|
EXECUTION_TIME_COMPLEXITY_INCREASE_UI_THREAD (enabled by
|
|
|
|
<br>
|
|
|
|
default), <br>
|
|
|
|
EXECUTION_TIME_UNREACHABLE_AT_EXIT (disabled by default),
|
|
|
|
<br>
|
|
|
|
EXPENSIVE_AUTORELEASEPOOL_SIZE (disabled by default), <br>
|
|
|
|
EXPENSIVE_EXECUTION_TIME (disabled by default), <br>
|
|
|
|
EXPENSIVE_LOOP_INVARIANT_CALL (enabled by default), <br>
|
|
|
|
EXPOSED_INSECURE_INTENT_HANDLING (enabled by default), <br>
|
|
|
|
Failure_exe (enabled by default), <br>
|
|
|
|
GLOBAL_VARIABLE_INITIALIZED_WITH_FUNCTION_OR_METHOD_CALL
|
|
|
|
<br>
|
|
|
|
(disabled by default), <br>
|
|
|
|
GUARDEDBY_VIOLATION (enabled by default), <br>
|
|
|
|
GUARDEDBY_VIOLATION_NULLSAFE (enabled by default), <br>
|
|
|
|
IMPURE_FUNCTION (enabled by default), <br>
|
|
|
|
INEFFICIENT_KEYSET_ITERATOR (enabled by default), <br>
|
|
|
|
INFERBO_ALLOC_IS_BIG (enabled by default), <br>
|
|
|
|
INFERBO_ALLOC_IS_NEGATIVE (enabled by default), <br>
|
|
|
|
INFERBO_ALLOC_IS_ZERO (enabled by default), <br>
|
|
|
|
INFERBO_ALLOC_MAY_BE_BIG (enabled by default), <br>
|
|
|
|
INFERBO_ALLOC_MAY_BE_NEGATIVE (enabled by default), <br>
|
|
|
|
INFINITE_AUTORELEASEPOOL_SIZE (disabled by default), <br>
|
|
|
|
INFINITE_EXECUTION_TIME (disabled by default), <br>
|
|
|
|
INHERENTLY_DANGEROUS_FUNCTION (enabled by default), <br>
|
|
|
|
INSECURE_INTENT_HANDLING (enabled by default), <br>
|
|
|
|
INTEGER_OVERFLOW_L1 (enabled by default), <br>
|
|
|
|
INTEGER_OVERFLOW_L2 (enabled by default), <br>
|
|
|
|
INTEGER_OVERFLOW_L5 (disabled by default), <br>
|
|
|
|
INTEGER_OVERFLOW_U5 (disabled by default), <br>
|
|
|
|
INTERFACE_NOT_THREAD_SAFE (enabled by default), <br>
|
|
|
|
INVARIANT_CALL (disabled by default), <br>
|
|
|
|
IPC_ON_UI_THREAD (enabled by default), <br>
|
|
|
|
IVAR_NOT_NULL_CHECKED (enabled by default), <br>
|
|
|
|
Internal_error (enabled by default), <br>
|
|
|
|
JAVASCRIPT_INJECTION (enabled by default), <br>
|
|
|
|
LAB_RESOURCE_LEAK (enabled by default), <br>
|
|
|
|
LOCKLESS_VIOLATION (enabled by default), <br>
|
|
|
|
LOCK_CONSISTENCY_VIOLATION (enabled by default), <br>
|
|
|
|
LOGGING_PRIVATE_DATA (enabled by default), <br>
|
|
|
|
Leak_after_array_abstraction (enabled by default), <br>
|
|
|
|
Leak_in_footprint (enabled by default), <br>
|
|
|
|
Leak_unknown_origin (disabled by default), <br>
|
|
|
|
MEMORY_LEAK (enabled by default), <br>
|
|
|
|
MISSING_REQUIRED_PROP (enabled by default), <br>
|
|
|
|
MIXED_SELF_WEAKSELF (enabled by default), <br>
|
|
|
|
MODIFIES_IMMUTABLE (enabled by default), <br>
|
|
|
|
MULTIPLE_WEAKSELF (enabled by default), <br>
|
|
|
|
MUTABLE_LOCAL_VARIABLE_IN_COMPONENT_FILE (enabled by
|
|
|
|
default), <br>
|
|
|
|
Missing_fld (enabled by default), <br>
|
|
|
|
NIL_BLOCK_CALL (enabled by default), <br>
|
|
|
|
NIL_INSERTION_INTO_COLLECTION (enabled by default), <br>
|
|
|
|
NIL_MESSAGING_TO_NON_POD (enabled by default), <br>
|
|
|
|
NULLPTR_DEREFERENCE (enabled by default), <br>
|
|
|
|
NULL_DEREFERENCE (enabled by default), <br>
|
|
|
|
OPTIONAL_EMPTY_ACCESS (enabled by default), <br>
|
|
|
|
PARAMETER_NOT_NULL_CHECKED (enabled by default), <br>
|
|
|
|
POINTER_TO_CONST_OBJC_CLASS (enabled by default), <br>
|
|
|
|
PRECONDITION_NOT_FOUND (enabled by default), <br>
|
|
|
|
PRECONDITION_NOT_MET (enabled by default), <br>
|
|
|
|
PREMATURE_NIL_TERMINATION_ARGUMENT (enabled by default),
|
|
|
|
<br>
|
|
|
|
PULSE_UNINITIALIZED_VALUE (enabled by default), <br>
|
|
|
|
PURE_FUNCTION (enabled by default), <br>
|
|
|
|
QUANDARY_TAINT_ERROR (enabled by default), <br>
|
|
|
|
RESOURCE_LEAK (enabled by default), <br>
|
|
|
|
RETAIN_CYCLE (enabled by default), <br>
|
|
|
|
SHELL_INJECTION (enabled by default), <br>
|
|
|
|
SHELL_INJECTION_RISK (enabled by default), <br>
|
|
|
|
SKIP_FUNCTION (disabled by default), <br>
|
|
|
|
SQL_INJECTION (enabled by default), <br>
|
|
|
|
SQL_INJECTION_RISK (enabled by default), <br>
|
|
|
|
STACK_VARIABLE_ADDRESS_ESCAPE (enabled by default), <br>
|
|
|
|
STARVATION (enabled by default), <br>
|
|
|
|
STATIC_INITIALIZATION_ORDER_FIASCO (enabled by default),
|
|
|
|
<br>
|
|
|
|
STRICT_MODE_VIOLATION (enabled by default), <br>
|
|
|
|
STRONG_DELEGATE_WARNING (enabled by default), <br>
|
|
|
|
STRONG_SELF_NOT_CHECKED (enabled by default), <br>
|
|
|
|
Symexec_memory_error (enabled by default), <br>
|
|
|
|
THREAD_SAFETY_VIOLATION (enabled by default), <br>
|
|
|
|
THREAD_SAFETY_VIOLATION_NULLSAFE (enabled by default), <br>
|
|
|
|
TOPL_ERROR (enabled by default), <br>
|
|
|
|
UNINITIALIZED_VALUE (enabled by default), <br>
|
|
|
|
UNREACHABLE_CODE (enabled by default), <br>
|
|
|
|
UNTRUSTED_BUFFER_ACCESS (disabled by default), <br>
|
|
|
|
UNTRUSTED_DESERIALIZATION (enabled by default), <br>
|
|
|
|
UNTRUSTED_DESERIALIZATION_RISK (enabled by default), <br>
|
|
|
|
UNTRUSTED_ENVIRONMENT_CHANGE_RISK (enabled by default), <br>
|
|
|
|
UNTRUSTED_FILE (enabled by default), <br>
|
|
|
|
UNTRUSTED_FILE_RISK (enabled by default), <br>
|
|
|
|
UNTRUSTED_HEAP_ALLOCATION (disabled by default), <br>
|
|
|
|
UNTRUSTED_INTENT_CREATION (enabled by default), <br>
|
|
|
|
UNTRUSTED_URL_RISK (enabled by default), <br>
|
|
|
|
UNTRUSTED_VARIABLE_LENGTH_ARRAY (enabled by default), <br>
|
|
|
|
USER_CONTROLLED_SQL_RISK (enabled by default), <br>
|
|
|
|
USE_AFTER_DELETE (enabled by default), <br>
|
|
|
|
USE_AFTER_FREE (enabled by default), <br>
|
|
|
|
USE_AFTER_LIFETIME (enabled by default), <br>
|
|
|
|
VECTOR_INVALIDATION (enabled by default), <br>
|
|
|
|
WEAK_SELF_IN_NO_ESCAPE_BLOCK (enabled by default), <br>
|
|
|
|
Wrong_argument_number (enabled by default). <br>
|
|
|
|
See also <b>infer-report</b>(1). <b><br>
|
|
|
|
--dump-duplicate-symbols</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Dump all symbols
|
|
|
|
with the same name that are defined in more than one file.
|
|
|
|
(Conversely: <b>--no-dump-duplicate-symbols</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--enable-issue-type</b> <i>+issue_type</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Show reports coming from this
|
|
|
|
type of issue. By default, all issue types are enabled
|
|
|
|
except the ones listed in <b>--disable-issue-type</b>. Note
|
|
|
|
that enabling issue types does not make the corresponding
|
|
|
|
checker run; see individual checker options to turn them on
|
|
|
|
or off.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-report</b>(1). <b><br>
|
|
|
|
--eradicate</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: checker eradicate:
|
|
|
|
The eradicate ‘@Nullable‘ checker for Java
|
|
|
|
annotations. (Conversely: <b>--no-eradicate</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--eradicate-only</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Enable eradicate and
|
|
|
|
disable all other checkers (Conversely:
|
|
|
|
<b>--no-eradicate-only</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--erlang-ast-dir</b> <i>dir</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Also load AST from all .json
|
|
|
|
files in the given path. These .json files usually come from
|
|
|
|
a previous run with <b>--debug</b>.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--erlang-skip-rebar3</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Skip running rebar,
|
|
|
|
to save time. It is useful together with
|
|
|
|
<b>--erlang-ast-dir</b>. (Conversely:
|
|
|
|
<b>--no-erlang-skip-rebar3</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <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>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--fail-on-issue</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Exit with error code
|
|
|
|
2 if Infer found something to report (Conversely:
|
|
|
|
<b>--no-fail-on-issue</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-run</b>(1).
|
|
|
|
<b><br>
|
|
|
|
--file-renamings</b> <i>path</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">JSON with a list of file
|
|
|
|
renamings to use while computing differential reports</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-reportdiff</b>(1). <b><br>
|
|
|
|
--no-filtering</b>,<b>-F</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Deactivates: Do not show the
|
|
|
|
experimental and blacklisted issue types (Conversely:
|
|
|
|
<b>--filtering</b> | <b>-f</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-report</b>(1). <b><br>
|
|
|
|
--force-delete-results-dir</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Do not refuse to
|
|
|
|
delete the results directory if it doesn't look like an
|
|
|
|
infer results directory. (Conversely:
|
|
|
|
<b>--no-force-delete-results-dir</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1), <b>infer-compile</b>(1), and
|
|
|
|
<b>infer-run</b>(1). <b><br>
|
|
|
|
--force-integration</b> <i>command</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Proceed as if the first
|
|
|
|
argument after <b>--</b> was <i>command</i>. Possible
|
|
|
|
values: <i>ant</i>, <i>buck</i>, <i>gradle</i>,
|
|
|
|
<i>gradlew</i>, <i>java</i>, <i>javac</i>, <i>cc</i>,
|
|
|
|
<i>clang</i>, <i>gcc</i>, <i>clang++</i>, <i>c++</i>,
|
|
|
|
<i>g++</i>, <i>make</i>, <i>configure</i>, <i>cmake</i>,
|
|
|
|
<i>waf</i>, <i>mvn</i>, <i>mvnw</i>, <i>ndk-build</i>,
|
|
|
|
<i>rebar3</i>, <i>xcodebuild</i>.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1) and <b>infer-run</b>(1). <b><br>
|
|
|
|
--no-fragment-retains-view</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Deactivates: checker
|
|
|
|
fragment-retains-view: Detects when Android fragments are
|
|
|
|
not explicitly nullified before becoming unreachable.
|
|
|
|
(Conversely: <b>--fragment-retains-view</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--fragment-retains-view-only</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Enable
|
|
|
|
fragment-retains-view and disable all other checkers
|
|
|
|
(Conversely: <b>--no-fragment-retains-view-only</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--from-json-config-impact-report</b>
|
|
|
|
<i>config-impact-report.json</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Load costs analysis results
|
|
|
|
from a config-impact-report file.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-report</b>(1). <b><br>
|
|
|
|
--from-json-costs-report</b> <i>costs-report.json</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Load costs analysis results
|
|
|
|
from a costs-report file.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-report</b>(1). <b><br>
|
|
|
|
--from-json-report</b> <i>report.json</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Load analysis results from a
|
|
|
|
report file (default is to load the results from the specs
|
|
|
|
files generated by the analysis).</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-report</b>(1). <b><br>
|
|
|
|
--frontend-tests</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Save
|
|
|
|
filename.ext.test.dot with the cfg in dotty format for
|
|
|
|
frontend tests (also sets <b>--print-types</b>) (Conversely:
|
|
|
|
<b>--no-frontend-tests</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--generated-classes</b> <i>path</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Specify where to load the
|
|
|
|
generated class files</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--global-tenv</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Print the global
|
|
|
|
type environment. (Conversely: <b>--no-global-tenv</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-debug</b>(1).
|
|
|
|
<b><br>
|
|
|
|
--headers</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Analyze code in
|
|
|
|
header files (Conversely: <b>--no-headers</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--help</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Show this manual</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1), <b>infer-analyzejson</b>(1),
|
|
|
|
<b><br>
|
|
|
|
infer-capture</b>(1), <b>infer-compile</b>(1),
|
|
|
|
<b>infer-debug</b>(1), <b><br>
|
|
|
|
infer-explore</b>(1), <b>infer-help</b>(1),
|
|
|
|
<b>infer-report</b>(1), <b><br>
|
|
|
|
infer-reportdiff</b>(1), and <b>infer-run</b>(1). <b><br>
|
|
|
|
--help-checker</b> <i>+checker-id</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Show information about a
|
|
|
|
checker, for example <i>biabduction</i>. To see the list of
|
|
|
|
all checkers, see <b>--list-checkers</b>.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-help</b>(1).
|
|
|
|
<b><br>
|
|
|
|
--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.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1), <b>infer-analyzejson</b>(1),
|
|
|
|
<b><br>
|
|
|
|
infer-capture</b>(1), <b>infer-compile</b>(1),
|
|
|
|
<b>infer-debug</b>(1), <b><br>
|
|
|
|
infer-explore</b>(1), <b>infer-help</b>(1),
|
|
|
|
<b>infer-report</b>(1), <b><br>
|
|
|
|
infer-reportdiff</b>(1), and <b>infer-run</b>(1). <b><br>
|
|
|
|
--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%;">See also
|
|
|
|
<b>infer-analyze</b>(1), <b>infer-analyzejson</b>(1),
|
|
|
|
<b><br>
|
|
|
|
infer-capture</b>(1), <b>infer-compile</b>(1),
|
|
|
|
<b>infer-debug</b>(1), <b><br>
|
|
|
|
infer-explore</b>(1), <b>infer-help</b>(1),
|
|
|
|
<b>infer-report</b>(1), <b><br>
|
|
|
|
infer-reportdiff</b>(1), and <b>infer-run</b>(1). <b><br>
|
|
|
|
--help-issue-type</b> <i>+UNIQUE_ID</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Show information about an issue
|
|
|
|
type, for example <i>NULL_DEREFERENCE</i>. To see the list
|
|
|
|
of all issue types, see <b>--list-issue-types</b>.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-help</b>(1).
|
|
|
|
<b><br>
|
|
|
|
--no-hoisting-report-only-expensive</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Deactivates: [Hoisting] Report
|
|
|
|
loop-invariant calls only when the function is expensive,
|
|
|
|
i.e. at least linear (Conversely:
|
|
|
|
<b>--hoisting-report-only-expensive</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-report</b>(1). <b><br>
|
|
|
|
--html</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Generate an html
|
|
|
|
report of issues found. (Conversely: <b>--no-html</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-explore</b>(1). <b><br>
|
|
|
|
--immutable-cast</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: checker
|
|
|
|
immutable-cast: Detection of object cast from immutable
|
|
|
|
types to mutable types. For instance, it will detect casts
|
|
|
|
from ‘ImmutableList‘ to ‘List‘,
|
|
|
|
‘ImmutableMap‘ to ‘Map‘, and
|
|
|
|
‘ImmutableSet‘ to ‘Set‘.
|
|
|
|
(Conversely: <b>--no-immutable-cast</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--immutable-cast-only</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Enable
|
|
|
|
immutable-cast and disable all other checkers (Conversely:
|
|
|
|
<b>--no-immutable-cast-only</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--impurity</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: checker impurity:
|
|
|
|
Detects functions with potential side-effects. Same as
|
|
|
|
"purity", but implemented on top of Pulse.
|
|
|
|
(Conversely: <b>--no-impurity</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--impurity-only</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Enable impurity and
|
|
|
|
disable all other checkers (Conversely:
|
|
|
|
<b>--no-impurity-only</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--impurity-report-immutable-modifications</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Report modifications
|
|
|
|
to immutable fields in the Impurity checker (Conversely:
|
|
|
|
<b>--no-impurity-report-immutable-modifications</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--no-inefficient-keyset-iterator</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Deactivates: checker
|
|
|
|
inefficient-keyset-iterator: Check for inefficient uses of
|
|
|
|
iterators that iterate on keys then lookup their values,
|
|
|
|
instead of iterating on key-value pairs directly.
|
|
|
|
(Conversely: <b>--inefficient-keyset-iterator</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--inefficient-keyset-iterator-only</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Enable
|
|
|
|
inefficient-keyset-iterator and disable all other checkers
|
|
|
|
(Conversely:
|
|
|
|
<b>--no-inefficient-keyset-iterator-only</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--issues-tests</b> <i>file</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Write a list of issues in a
|
|
|
|
format suitable for tests to <i>file</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-report</b>(1). <b><br>
|
|
|
|
--issues-tests-fields</b> <i>,-separated sequence of {
|
|
|
|
bug_type | bucket | <br>
|
|
|
|
qualifier | severity | line | column | procedure |
|
|
|
|
procedure_start_line <br>
|
|
|
|
| file | bug_trace | key | hash | line_offset | <br>
|
|
|
|
qualifier_contains_potential_exception_note | nullsafe_extra
|
|
|
|
}</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Fields to emit with
|
|
|
|
<b>--issues-tests</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-report</b>(1). <b><br>
|
|
|
|
--java-jar-compiler</b> <i>path</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Specify the Java compiler jar
|
|
|
|
used to generate the bytecode</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--java-version</b> <i>int</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">The version of Java being used.
|
|
|
|
Set it to your Java version if mvn is failing.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1) and <b>infer-capture</b>(1). <b><br>
|
|
|
|
--jobs</b>,<b>-j</b> <i>int</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Run the specified number of
|
|
|
|
analysis jobs simultaneously</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--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%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--linter</b> <i>string</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">From the linters available,
|
|
|
|
only run this one linter. (Useful together with
|
|
|
|
<b>--linters-developer-mode</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--no-linters</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Deactivates: checker linters:
|
|
|
|
Declarative linting framework over the Clang AST.
|
|
|
|
(Conversely: <b>--linters</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--linters-def-file</b> <i>+file</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Specify the file containing
|
|
|
|
linters definition (e.g. 'linters.al')</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--linters-def-folder</b> <i>+dir</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Specify the folder containing
|
|
|
|
linters files with extension .al</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--linters-developer-mode</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Debug mode for
|
|
|
|
developing new linters. (Sets the analyzer to
|
|
|
|
<b>linters</b>; also sets <b>--debug</b>,
|
|
|
|
<b>--debug-level-linters 2</b>, <b>--developer-mode</b>, and
|
|
|
|
unsets <b>--allowed-failures</b> and
|
|
|
|
<b>--default-linters</b>. (Conversely:
|
|
|
|
<b>--no-linters-developer-mode</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--linters-doc-url</b> <i>+string</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Specify custom documentation
|
|
|
|
URL for some linter that overrides the default one. Useful
|
|
|
|
if your project has specific ways of fixing a lint error
|
|
|
|
that is not true in general or public info. Format:
|
|
|
|
linter_name:doc_url.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--linters-ignore-clang-failures</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Continue linting
|
|
|
|
files even if some compilation fails. (Conversely:
|
|
|
|
<b>--no-linters-ignore-clang-failures</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--linters-only</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Enable linters and
|
|
|
|
disable all other checkers (Conversely:
|
|
|
|
<b>--no-linters-only</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--linters-validate-syntax-only</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Validate syntax of
|
|
|
|
AL files, then emit possible errors in JSON format to stdout
|
|
|
|
(Conversely: <b>--no-linters-validate-syntax-only</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--list-checkers</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Show the list of all
|
|
|
|
available checkers. (Conversely:
|
|
|
|
<b>--no-list-checkers</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-help</b>(1).
|
|
|
|
<b><br>
|
|
|
|
--list-issue-types</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Show the list of all
|
|
|
|
issue types that infer might report. (Conversely:
|
|
|
|
<b>--no-list-issue-types</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-help</b>(1).
|
|
|
|
<b><br>
|
|
|
|
--litho-required-props</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: checker
|
|
|
|
litho-required-props: Checks that all non-optional
|
|
|
|
‘@Prop‘s have been specified when constructing
|
|
|
|
Litho components. (Conversely:
|
|
|
|
<b>--no-litho-required-props</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--litho-required-props-only</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Enable
|
|
|
|
litho-required-props and disable all other checkers
|
|
|
|
(Conversely: <b>--no-litho-required-props-only</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--no-liveness</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Deactivates: checker liveness:
|
|
|
|
Detection of dead stores and unused variables. (Conversely:
|
|
|
|
<b>--liveness</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--liveness-dangerous-classes</b> <i>json</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Specify classes where the
|
|
|
|
destructor should be ignored when computing liveness. In
|
|
|
|
other words, assignement to variables of these types (or
|
|
|
|
common wrappers around these types such as
|
|
|
|
<i>unique_ptr<type></i>) will count as dead stores
|
|
|
|
when the variables are not read explicitly by the
|
|
|
|
program.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--liveness-ignored-constant</b> <i>+string</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">List of integer constants to be
|
|
|
|
ignored by liveness analysis</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--liveness-only</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Enable liveness and
|
|
|
|
disable all other checkers (Conversely:
|
|
|
|
<b>--no-liveness-only</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--load-average</b>,<b>-l</b> <i>float</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Do not start new parallel jobs
|
|
|
|
if the load average is greater than that specified (Buck and
|
|
|
|
make only)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--loop-hoisting</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: checker
|
|
|
|
loop-hoisting: Detect opportunities to hoist function calls
|
|
|
|
that are invariant outside of loop bodies for efficiency.
|
|
|
|
(Conversely: <b>--no-loop-hoisting</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--loop-hoisting-only</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Enable loop-hoisting
|
|
|
|
and disable all other checkers (Conversely:
|
|
|
|
<b>--no-loop-hoisting-only</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--max-jobs</b> <i>int</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Maximum number of analysis jobs
|
|
|
|
running simultaneously</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--max-nesting</b> <i>int</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Level of nested procedure calls
|
|
|
|
to show. Trace elements beyond the maximum nesting level are
|
|
|
|
skipped. If omitted, all levels are shown.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-explore</b>(1). <b><br>
|
|
|
|
--memtrace-analysis-profiling</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Generate OCaml
|
|
|
|
analysis allocation traces in
|
|
|
|
‘infer-out/memtrace‘. (Conversely:
|
|
|
|
<b>--no-memtrace-analysis-profiling</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--memtrace-sampling-rate</b> <i>float</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Sampling rate for Memtrace
|
|
|
|
allocation profiling. Default is 1e-6.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--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>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--pmd-xml</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Output issues in
|
|
|
|
(PMD) XML format in infer-out/report.xml (Conversely:
|
|
|
|
<b>--no-pmd-xml</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-run</b>(1).
|
|
|
|
<b><br>
|
|
|
|
--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%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--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%;">See also
|
|
|
|
<b>infer-analyze</b>(1), <b>infer-capture</b>(1),
|
|
|
|
<b>infer-report</b>(1), and <b><br>
|
|
|
|
infer-run</b>(1). <b><br>
|
|
|
|
--printf-args</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: checker printf-args:
|
|
|
|
Detect mismatches 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>--no-printf-args</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--printf-args-only</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Enable printf-args
|
|
|
|
and disable all other checkers (Conversely:
|
|
|
|
<b>--no-printf-args-only</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--procedures</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Print functions and
|
|
|
|
methods discovered by infer (Conversely:
|
|
|
|
<b>--no-procedures</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-debug</b>(1).
|
|
|
|
<b><br>
|
|
|
|
--procedures-attributes</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Print the attributes
|
|
|
|
of each procedure in the output of <b>--procedures</b>
|
|
|
|
(Conversely: <b>--no-procedures-attributes</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-debug</b>(1).
|
|
|
|
<b><br>
|
|
|
|
--procedures-cfg</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Output a dotty file
|
|
|
|
in
|
|
|
|
infer-out/captured/<file_name>/<proc_name>.dot
|
|
|
|
for each procedure in the output of <b>--procedures</b>
|
|
|
|
(Conversely: <b>--no-procedures-cfg</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-debug</b>(1).
|
|
|
|
<b><br>
|
|
|
|
--no-procedures-definedness</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Deactivates: Include procedures
|
|
|
|
definedness in the output of <b>--procedures</b>, i.e.
|
|
|
|
whether the procedure definition was found, or only the
|
|
|
|
procedure declaration, or the procedure is an auto-generated
|
|
|
|
Objective-C accessor (Conversely:
|
|
|
|
<b>--procedures-definedness</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-debug</b>(1).
|
|
|
|
<b><br>
|
|
|
|
--procedures-filter</b> <i>filter</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">With <b>--procedures</b>, only
|
|
|
|
print functions and methods (procedures) matching the
|
|
|
|
specified <i>filter</i>. A procedure filter is of the form
|
|
|
|
<i>path_pattern:procedure_name</i>. Patterns are interpreted
|
|
|
|
as OCaml Str regular expressions. For instance, to keep only
|
|
|
|
methods named "foo", one can use the filter
|
|
|
|
".*:foo", or "foo" for short.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-debug</b>(1).
|
|
|
|
<b><br>
|
|
|
|
--procedures-name</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Include procedures
|
|
|
|
names in the output of <b>--procedures</b> (Conversely:
|
|
|
|
<b>--no-procedures-name</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-debug</b>(1).
|
|
|
|
<b><br>
|
|
|
|
--no-procedures-source-file</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Deactivates: Include the source
|
|
|
|
file in which the procedure definition or declaration was
|
|
|
|
found in the output of <b>--procedures</b> (Conversely:
|
|
|
|
<b>--procedures-source-file</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-debug</b>(1).
|
|
|
|
<b><br>
|
|
|
|
--procedures-summary</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Print the summaries
|
|
|
|
of each procedure in the output of <b>--procedures</b>
|
|
|
|
(Conversely: <b>--no-procedures-summary</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-debug</b>(1).
|
|
|
|
<b><br>
|
|
|
|
--procedures-summary-json</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Emit the summaries
|
|
|
|
of each procedure in the output of <b>--procedures</b> as
|
|
|
|
JSON (Conversely: <b>--no-procedures-summary-json</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-debug</b>(1).
|
|
|
|
<b><br>
|
|
|
|
--no-progress-bar</b>,<b>-P</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Deactivates: Show a progress
|
|
|
|
bar (Conversely: <b>--progress-bar</b> | <b>-p</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-run</b>(1).
|
|
|
|
<b><br>
|
|
|
|
--progress-bar-style</b> <i>{ auto | plain | multiline
|
|
|
|
}</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Style of the progress bar.
|
|
|
|
<b>auto</b> selects <b>multiline</b> if connected to a tty,
|
|
|
|
otherwise <b>plain</b>.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1) and <b>infer-capture</b>(1). <b><br>
|
|
|
|
--project-root</b>,<b>-C</b> <i>dir</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Specify the root directory of
|
|
|
|
the project</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1), <b>infer-capture</b>(1),
|
|
|
|
<b>infer-report</b>(1), and <b><br>
|
|
|
|
infer-run</b>(1). <b><br>
|
|
|
|
--pulse</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: checker pulse:
|
|
|
|
Memory and lifetime analysis. (Conversely:
|
|
|
|
<b>--no-pulse</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--pulse-cut-to-one-path-procedures-pattern</b>
|
|
|
|
<i>string</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Regex of methods for which
|
|
|
|
pulse will only explore one path. Can be used on
|
|
|
|
pathologically large procedures to prevent too-big states
|
|
|
|
from being produced.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--pulse-model-abort</b> <i>+string</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Methods that should be modelled
|
|
|
|
as abort in Pulse</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--pulse-model-alloc-pattern</b> <i>string</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Regex of methods that should be
|
|
|
|
modelled as allocs in Pulse</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--pulse-model-free-pattern</b> <i>string</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Regex of methods that should be
|
|
|
|
modelled as wrappers to <i>free</i>(3) in Pulse. The pointer
|
|
|
|
to be freed should be the first argument of the function.
|
|
|
|
This should only be needed if the code of the wrapper is not
|
|
|
|
visible to infer or if Pulse somehow doesn't understand it
|
|
|
|
(e.g. the call is dispatched to global function
|
|
|
|
pointers).</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--pulse-model-malloc-pattern</b> <i>string</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Regex of methods that should be
|
|
|
|
modelled as wrappers to <i>malloc</i>(3) in Pulse. The size
|
|
|
|
to allocate should be the first argument of the function.
|
|
|
|
See <b>--pulse-model-free-pattern</b> for more
|
|
|
|
information.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--pulse-model-realloc-pattern</b> <i>string</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Regex of methods that should be
|
|
|
|
modelled as wrappers to <i>realloc</i>(3) in Pulse. The
|
|
|
|
pointer to be reallocated should be the first argument of
|
|
|
|
the function and the new size the second argument. See
|
|
|
|
<b>--pulse-model-free-pattern</b> for more information.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--pulse-model-release-pattern</b> <i>string</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Regex of methods that should be
|
|
|
|
modelled as release in Pulse</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--pulse-model-return-first-arg</b> <i>string</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Regex of methods that should be
|
|
|
|
modelled as returning the first argument in Pulse</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--pulse-model-return-nonnull</b> <i>string</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Regex of methods that should be
|
|
|
|
modelled as returning non-null in Pulse</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--pulse-model-skip-pattern</b> <i>string</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Regex of methods that should be
|
|
|
|
modelled as "skip" in Pulse</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--pulse-model-transfer-ownership</b> <i>+string</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Methods that should be modelled
|
|
|
|
as transfering memory ownership in Pulse. Accepted formats
|
|
|
|
are method or namespace::method</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--pulse-only</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Enable pulse and
|
|
|
|
disable all other checkers (Conversely:
|
|
|
|
<b>--no-pulse-only</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--pulse-report-ignore-unknown-java-methods-patterns</b>
|
|
|
|
<i>+string</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">On Java, issues that are found
|
|
|
|
on program paths that contain calls to unknown methods
|
|
|
|
(those without implementation) are not reported unless all
|
|
|
|
the unknown method names match this pattern. If the empty
|
|
|
|
list is provided with
|
|
|
|
<b>--pulse-report-ignore-unknown-java-methods-patterns-reset</b>,
|
|
|
|
all issues will be reported regardless the presence of
|
|
|
|
unknown code</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--purity</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: checker purity:
|
|
|
|
Detects pure (side-effect-free) functions. A different
|
|
|
|
implementation of "impurity". (Conversely:
|
|
|
|
<b>--no-purity</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--purity-only</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Enable purity and
|
|
|
|
disable all other checkers (Conversely:
|
|
|
|
<b>--no-purity-only</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--quandary</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: checker quandary:
|
|
|
|
The Quandary taint analysis detects flows of values between
|
|
|
|
sources and sinks, except if the value went through a
|
|
|
|
"sanitizer". In addition to some defaults, users
|
|
|
|
can specify their own sources, sinks, and sanitizers
|
|
|
|
functions. (Conversely: <b>--no-quandary</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--quandary-endpoints</b> <i>json</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Specify endpoint classes for
|
|
|
|
Quandary</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--quandary-only</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Enable quandary and
|
|
|
|
disable all other checkers (Conversely:
|
|
|
|
<b>--no-quandary-only</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--quandary-sanitizers</b> <i>json</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Specify custom sanitizers for
|
|
|
|
Quandary</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--quandary-sinks</b> <i>json</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Specify custom sinks for
|
|
|
|
Quandary</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--quandary-sources</b> <i>json</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Specify custom sources for
|
|
|
|
Quandary</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--quiet</b>,<b>-q</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Do not print
|
|
|
|
anything on standard output. (Conversely: <b>--no-quiet</b>
|
|
|
|
| <b>-Q</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1) and <b>infer-report</b>(1). <b><br>
|
|
|
|
--no-racerd</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Deactivates: checker racerd:
|
|
|
|
Thread safety analysis. (Conversely: <b>--racerd</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--racerd-guardedby</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Check @GuardedBy
|
|
|
|
annotations with RacerD (Conversely:
|
|
|
|
<b>--no-racerd-guardedby</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--racerd-only</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Enable racerd and
|
|
|
|
disable all other checkers (Conversely:
|
|
|
|
<b>--no-racerd-only</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--no-racerd-unknown-returns-owned</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Deactivates: DEPRECATED, does
|
|
|
|
nothing. (Conversely:
|
|
|
|
<b>--racerd-unknown-returns-owned</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--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%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--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%;">See also
|
|
|
|
<b>infer-analyze</b>(1) and <b>infer-run</b>(1). <b><br>
|
|
|
|
--report-blacklist-files-containing</b> <i>+string</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Do not report any issues on
|
|
|
|
files containing the specified string</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-report</b>(1)
|
|
|
|
and <b>infer-run</b>(1). <b><br>
|
|
|
|
--report-blacklist-path-regex</b> <i>+path_regex</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Do not report any issues on
|
|
|
|
files whose relative path matches the specified OCaml regex,
|
|
|
|
even if they match the whitelist specified by
|
|
|
|
<b>--report-whitelist-path-regex</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-report</b>(1)
|
|
|
|
and <b>infer-run</b>(1). <b><br>
|
|
|
|
--report-console-limit</b> <i>int</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Maximum number of issues to
|
|
|
|
display on standard output. Unset with
|
|
|
|
<b>--report-console-limit-reset</b> to show all.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-report</b>(1). <b><br>
|
|
|
|
--report-current</b> <i>path</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">report of the latest
|
|
|
|
revision</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-reportdiff</b>(1). <b><br>
|
|
|
|
--report-force-relative-path</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Force converting an
|
|
|
|
absolute path to a relative path to the root directory
|
|
|
|
(Conversely: <b>--no-report-force-relative-path</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1) and <b>infer-run</b>(1). <b><br>
|
|
|
|
--report-formatter</b> <i>{ none | phabricator }</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Which formatter to use when
|
|
|
|
emitting the report</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-report</b>(1). <b><br>
|
|
|
|
--report-previous</b> <i>path</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Report of the base revision to
|
|
|
|
use for comparison</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-reportdiff</b>(1). <b><br>
|
|
|
|
--report-suppress-errors</b> <i>+error_name</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">do not report a type of
|
|
|
|
errors</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-report</b>(1)
|
|
|
|
and <b>infer-run</b>(1). <b><br>
|
|
|
|
--report-whitelist-path-regex</b> <i>+path_regex</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Report issues only on files
|
|
|
|
whose relative path matches the specified OCaml regex (and
|
|
|
|
which do not match <b>--report-blacklist-path-regex</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-report</b>(1)
|
|
|
|
and <b>infer-run</b>(1). <b><br>
|
|
|
|
--results-dir</b>,<b>-o</b> <i>dir</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Write results and internal
|
|
|
|
files in the specified directory</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1), <b>infer-capture</b>(1),
|
|
|
|
<b>infer-explore</b>(1), <b><br>
|
|
|
|
infer-report</b>(1), and <b>infer-run</b>(1). <b><br>
|
|
|
|
--scheduler</b> <i>{ file | restart | callgraph }</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Specify the scheduler used for
|
|
|
|
the analysis phase:</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">- file: schedule one job per
|
|
|
|
file <br>
|
|
|
|
- callgraph: schedule one job per procedure, following the
|
|
|
|
<br>
|
|
|
|
syntactic call graph. Usually faster than "file".
|
|
|
|
<br>
|
|
|
|
- restart: same as callgraph but uses locking to try and
|
|
|
|
avoid <br>
|
|
|
|
duplicate work between different analysis processes and thus
|
|
|
|
<br>
|
|
|
|
performs better in some circumstances <br>
|
|
|
|
See also <b>infer-analyze</b>(1). <b><br>
|
|
|
|
--select</b> <i>(N|all)</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Select option number <i>N</i>
|
|
|
|
or <i>all</i> of them. If omitted, prompt for input.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-debug</b>(1)
|
|
|
|
and <b>infer-explore</b>(1). <b><br>
|
|
|
|
--no-self-in-block</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Deactivates: checker
|
|
|
|
self-in-block: An Objective-C-specific analysis to detect
|
|
|
|
when a block captures ‘self‘. (Conversely:
|
|
|
|
<b>--self-in-block</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--self-in-block-only</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Enable self-in-block
|
|
|
|
and disable all other checkers (Conversely:
|
|
|
|
<b>--no-self-in-block-only</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--no-siof</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Deactivates: checker siof:
|
|
|
|
Catches Static Initialization Order Fiascos in C++, that can
|
|
|
|
lead to subtle, compiler-version-dependent errors.
|
|
|
|
(Conversely: <b>--siof</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--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 to avoid
|
|
|
|
false positives. However, if your program compiles against a
|
|
|
|
recent libstdc++ then it is safe to turn this option on.
|
|
|
|
(Conversely: <b>--no-siof-check-iostreams</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--siof-only</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Enable siof and
|
|
|
|
disable all other checkers (Conversely:
|
|
|
|
<b>--no-siof-only</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--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>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--skip-analysis-in-path</b>
|
|
|
|
<i>+path_prefix_OCaml_regex</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Ignore files whose path matches
|
|
|
|
the given prefix (can be specified multiple times)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1) and <b>infer-run</b>(1). <b><br>
|
|
|
|
--skip-analysis-in-path-skips-compilation</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Whether paths in
|
|
|
|
--skip-analysis-in-path should be compiled or not
|
|
|
|
(Conversely:
|
|
|
|
<b>--no-skip-analysis-in-path-skips-compilation</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-report</b>(1). <b><br>
|
|
|
|
--no-skip-duplicated-types</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Deactivates: Skip
|
|
|
|
fixed-then-introduced duplicated types while computing
|
|
|
|
differential reports (Conversely:
|
|
|
|
<b>--skip-duplicated-types</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-reportdiff</b>(1). <b><br>
|
|
|
|
--skip-non-capture-clang-commands</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Skip clang commands
|
|
|
|
that Infer doesn't use to capture data (Conversely:
|
|
|
|
<b>--no-skip-non-capture-clang-commands</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--skip-translation-headers</b> <i>+path_regex</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Ignore declarations in headers
|
|
|
|
whose path matches the given OCaml regex from the start of
|
|
|
|
the string during capture.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--source-files</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Print source files
|
|
|
|
discovered by infer (Conversely:
|
|
|
|
<b>--no-source-files</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-debug</b>(1).
|
|
|
|
<b><br>
|
|
|
|
--source-files-cfg</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Output a dotty file
|
|
|
|
in infer-out/captured for each source file in the output of
|
|
|
|
<b>--source-files</b> (Conversely:
|
|
|
|
<b>--no-source-files-cfg</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-debug</b>(1).
|
|
|
|
<b><br>
|
|
|
|
--source-files-filter</b> <i>filter</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">With <b>--source-files</b>,
|
|
|
|
only print source files matching the specified
|
|
|
|
<i>filter</i>. The filter is a pattern that should match the
|
|
|
|
file path. Patterns are interpreted as OCaml Str regular
|
|
|
|
expressions.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-debug</b>(1).
|
|
|
|
<b><br>
|
|
|
|
--source-files-freshly-captured</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Print whether the
|
|
|
|
source file has been captured in the most recent capture
|
|
|
|
phase in the output of <b>--source-files</b>. (Conversely:
|
|
|
|
<b>--no-source-files-freshly-captured</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-debug</b>(1).
|
|
|
|
<b><br>
|
|
|
|
--source-files-procedure-names</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Print the names of
|
|
|
|
procedure of each source file in the output of
|
|
|
|
<b>--source-files</b> (Conversely:
|
|
|
|
<b>--no-source-files-procedure-names</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-debug</b>(1).
|
|
|
|
<b><br>
|
|
|
|
--source-files-type-environment</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Print the type
|
|
|
|
environment of each source file in the output of
|
|
|
|
<b>--source-files</b> (Conversely:
|
|
|
|
<b>--no-source-files-type-environment</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-debug</b>(1).
|
|
|
|
<b><br>
|
|
|
|
--no-source-preview</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Deactivates: print code
|
|
|
|
excerpts around trace elements (Conversely:
|
|
|
|
<b>--source-preview</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-explore</b>(1). <b><br>
|
|
|
|
--sqlite-cache-size</b> <i>int</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">SQLite cache size in pages (if
|
|
|
|
positive) or kB (if negative), follows formal of
|
|
|
|
corresponding SQLite PRAGMA.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1), <b>infer-capture</b>(1), and
|
|
|
|
<b>infer-run</b>(1). <b><br>
|
|
|
|
--sqlite-lock-timeout</b> <i>int</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Timeout for SQLite results
|
|
|
|
database operations, in milliseconds.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1), <b>infer-capture</b>(1), and
|
|
|
|
<b>infer-run</b>(1). <b><br>
|
|
|
|
--sqlite-page-size</b> <i>int</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">SQLite page size in bytes, must
|
|
|
|
be a power of two between 512 and 65536.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1), <b>infer-capture</b>(1), and
|
|
|
|
<b>infer-run</b>(1). <b><br>
|
|
|
|
--no-starvation</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Deactivates: checker
|
|
|
|
starvation: Detect various kinds of situations when no
|
|
|
|
progress is being made because of concurrency errors.
|
|
|
|
(Conversely: <b>--starvation</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--starvation-only</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Enable starvation
|
|
|
|
and disable all other checkers (Conversely:
|
|
|
|
<b>--no-starvation-only</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--tenv-json</b> <i>file</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Path to TEnv json file</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyzejson</b>(1). <b><br>
|
|
|
|
--threadsafe-aliases</b> <i>json</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Specify custom annotations that
|
|
|
|
should be considered aliases of @ThreadSafe</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--topl</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: checker topl: Detect
|
|
|
|
errors based on user-provided state machines describing
|
|
|
|
temporal properties over multiple objects. (Conversely:
|
|
|
|
<b>--no-topl</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--topl-only</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Enable topl and
|
|
|
|
disable all other checkers (Conversely:
|
|
|
|
<b>--no-topl-only</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--uninit</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: checker uninit:
|
|
|
|
Warns when values are used before having been initialized.
|
|
|
|
(Conversely: <b>--no-uninit</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--uninit-only</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Enable uninit and
|
|
|
|
disable all other checkers (Conversely:
|
|
|
|
<b>--no-uninit-only</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--version</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Print version information and
|
|
|
|
exit</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-run</b>(1).
|
|
|
|
<b><br>
|
|
|
|
--version-json</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Print version information in
|
|
|
|
json format and exit</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-run</b>(1).
|
|
|
|
<b><br>
|
|
|
|
--workspace</b> <i>path</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Specifies the root of the
|
|
|
|
workspace, which is a directory containing
|
|
|
|
<b>--project-root</b>. This can be needed if the capture
|
|
|
|
phase is expected to require several <i>different</i>
|
|
|
|
project roots, all relative to a common workspace. Usually a
|
|
|
|
single project root is enough, though.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--write-html</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Produce html debug
|
|
|
|
output for the analyses in infer-out/captured. This shows
|
|
|
|
the abstract state of all analyses at each program point in
|
|
|
|
the source code. Each captured source file has its own html
|
|
|
|
page. This HTML file contains the source file, and at each
|
|
|
|
line of</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">the file there are links to the
|
|
|
|
nodes of the control flow graph <br>
|
|
|
|
of Infer's translation of that line of code into its
|
|
|
|
intermediate <br>
|
|
|
|
representation (SIL). This way it's possible to see what the
|
|
|
|
<br>
|
|
|
|
translation is, and the details of the symbolic execution on
|
|
|
|
each <br>
|
|
|
|
node. (Conversely: <b>--no-write-html</b>) <br>
|
|
|
|
See also <b>infer-analyze</b>(1). <b><br>
|
|
|
|
--write-website</b> <i>path_to_website_dir</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Use to write website files
|
|
|
|
documenting issue types and checkers under
|
|
|
|
<i>path_to_website_dir/</i>. Meant to be used within the
|
|
|
|
Infer directory to generate its website at
|
|
|
|
<i>fbinfer.com</i> at <i>website/</i>.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also <b>infer-help</b>(1).
|
|
|
|
<b><br>
|
|
|
|
--Xbuck</b> <i>+string</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Pass values as command-line
|
|
|
|
arguments to invocations of <i>‘buck build‘</i>.
|
|
|
|
Only valid for <b>--buck-clang</b>.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--Xbuck-no-inline</b> <i>+string</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Pass values as command-line
|
|
|
|
arguments to invocations of <i>‘buck build‘</i>,
|
|
|
|
don't inline any args starting with '@'. Only valid for
|
|
|
|
<b>--buck-clang</b>.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--Xclang</b> <i>+string</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Pass values as command-line
|
|
|
|
arguments to invocations of clang</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--xcode-developer-dir</b> <i>XCODE_DEVELOPER_DIR</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Specify the path to Xcode
|
|
|
|
developer directory, to use for Buck clang targets</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1). <b><br>
|
|
|
|
--xcode-isysroot-suffix</b> <i>string</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Specify the suffix of Xcode
|
|
|
|
isysroot directory, to avoid absolute paths in tests</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-analyze</b>(1). <b><br>
|
|
|
|
--xcpretty</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Infer will use
|
|
|
|
xcpretty together with xcodebuild to analyze an iOS app.
|
|
|
|
xcpretty just needs to be in the path, infer command is
|
|
|
|
still just <i>‘infer -- <xcodebuild
|
|
|
|
command>‘</i>. (Conversely:
|
|
|
|
<b>--no-xcpretty</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1).</p>
|
|
|
|
|
|
|
|
<table width="100%" border="0" rules="none" frame="void"
|
|
|
|
cellspacing="0" cellpadding="0">
|
|
|
|
<tr valign="top" align="left">
|
|
|
|
<td width="11%"></td>
|
|
|
|
<td width="3%">
|
|
|
|
|
|
|
|
|
|
|
|
<p><b>--</b></p></td>
|
|
|
|
<td width="3%"></td>
|
|
|
|
<td width="83%">
|
|
|
|
|
|
|
|
|
|
|
|
<p>Stop argument processing, use remaining arguments as a
|
|
|
|
build command</p></td></tr>
|
|
|
|
</table>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">See also
|
|
|
|
<b>infer-capture</b>(1) and <b>infer-run</b>(1).</p>
|
|
|
|
|
|
|
|
<h2>ENVIRONMENT
|
|
|
|
<a name="ENVIRONMENT"></a>
|
|
|
|
</h2>
|
|
|
|
|
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em">Extra arguments
|
|
|
|
may be passed to all infer commands using the
|
|
|
|
<b>INFER_ARGS</b> environment variable (see the
|
|
|
|
<i>OPTIONS</i> section). <b>INFER_ARGS</b> is expected to
|
|
|
|
contain a string of ^-separated options. For instance,
|
|
|
|
calling ‘INFER_ARGS=--debug^--print-logs infer‘
|
|
|
|
is equivalent to calling ‘infer --debug
|
|
|
|
--print-logs‘.</p>
|
|
|
|
|
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em"><b>INFERCONFIG</b>:
|
|
|
|
Tells infer where to find the .inferconfig file. (See the
|
|
|
|
FILES section)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em">If
|
|
|
|
<b>INFER_STRICT_MODE</b> is set to "1", then infer
|
|
|
|
commands will exit with an error code in some cases when
|
|
|
|
otherwise a simple warning would be emitted on stderr, for
|
|
|
|
instance if a deprecated form of an option is used.</p>
|
|
|
|
|
|
|
|
<h2>FILES
|
|
|
|
<a name="FILES"></a>
|
|
|
|
</h2>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em"><b>.inferconfig</b>
|
|
|
|
can be used to store infer options. Its format is that of a
|
|
|
|
JSON record, where fields are infer long-form options,
|
|
|
|
without their leading "--", and values depend on
|
|
|
|
the type of the option: <br>
|
|
|
|
- for switches options, the value is a JSON boolean (true or
|
|
|
|
false, without quotes) <br>
|
|
|
|
- for non-switches options with no arguments (for instance
|
|
|
|
the undefined option associated with a list option), the
|
|
|
|
value is null <br>
|
|
|
|
- for integers, the value is a JSON integer (without quotes)
|
|
|
|
<br>
|
|
|
|
- string options have string values <br>
|
|
|
|
- path options have string values, and are interpreted
|
|
|
|
relative to the location of the .inferconfig file <br>
|
|
|
|
- cumulative options are JSON arrays of the appropriate
|
|
|
|
type</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em">Infer will look
|
|
|
|
for an <b>.inferconfig</b> file in the current directory,
|
|
|
|
then its parent, etc., stopping at the first
|
|
|
|
<b>.inferconfig</b> file found.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em">Example:</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em">{ <br>
|
|
|
|
"cxx": false, <br>
|
|
|
|
"infer-blacklist-files-containing":
|
|
|
|
["@gen","/* no infer */"] <br>
|
|
|
|
}</p>
|
|
|
|
|
|
|
|
<h2>SEE ALSO
|
|
|
|
<a name="SEE ALSO"></a>
|
|
|
|
</h2>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em"><b>infer-analyze</b>(1),
|
|
|
|
<b>infer-analyzejson</b>(1), <b>infer-capture</b>(1),
|
|
|
|
<b>infer-compile</b>(1), <b>infer-debug</b>(1),
|
|
|
|
<b>infer-explore</b>(1), <b>infer-help</b>(1),
|
|
|
|
<b>infer-report</b>(1), <b>infer-reportdiff</b>(1),
|
|
|
|
<b>infer-run</b>(1)</p>
|
|
|
|
<hr>
|
|
|
|
</body>
|
|
|
|
</html>
|