You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

552 lines
19 KiB

<!-- Creator : groff version 1.19.2 -->
<!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; }
pre { margin-top: 0; margin-bottom: 0; }
table { margin-top: 0; margin-bottom: 0; }
</style>
<title>infer-report</title>
</head>
<body>
<h1 align=center>infer-report</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="#HOISTING OPTIONS">HOISTING OPTIONS</a><br>
<a href="#ENVIRONMENT">ENVIRONMENT</a><br>
<a href="#FILES">FILES</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>
<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<p style="margin-left:11%; margin-top: 1em">infer-report -
compute and manipulate infer results</p>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<p style="margin-left:11%; margin-top: 1em"><b>infer
report</b> <i>[options]</i> [<i>file.specs</i>...]</p>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<p style="margin-left:11%; margin-top: 1em">Read, convert,
and print .specs files in the results directory. Each spec
is printed to standard output unless option -q is used.</p>
<p style="margin-left:11%; margin-top: 1em">If no specs
file are passed on the command line, process all the .specs
in the results directory.</p>
<a name="OPTIONS"></a>
<h2>OPTIONS</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--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:
&lsquo;&lt;issue_type_regex&gt;:&lt;filename_regex&gt;:&lt;reason_string&gt;&lsquo;.
The first two components are OCaml Str regular expressions,
with an optional &lsquo;!&lsquo; character prefix. If a
regex has a &lsquo;!&lsquo; prefix, the polarity is
inverted, and the filter becomes a &quot;blacklist&quot;
instead of a &quot;whitelist&quot;. Each filter is
interpreted as an implication: an issue matches if it does
not match the &lsquo;issue_type_regex&lsquo; or if it does
match the &lsquo;filename_regex&lsquo;. The filenames that
are tested by the regex are relative to the
&lsquo;--project-root&lsquo; directory. The
&lsquo;&lt;reason_string&gt;&lsquo; is a non-empty string
used to explain why the issue was filtered.</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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%;"><b>--debug</b>,<b>-g</b></p>
<p style="margin-left:17%;">Activates: Debug mode (also
sets <b>--debug-level 2</b>, <b>--developer-mode</b>,
<b>--print-buckets</b>, <b>--print-types</b>,
<b>--reports-include-ml-loc</b>,
<b>--no-only-cheap-debug</b>, <b>--trace-error</b>,
<b>--write-dotty</b>, <b>--write-html</b>) (Conversely:
<b>--no-debug</b> | <b>-G</b>)</p>
<p style="margin-left:11%;"><b>--debug-level</b>
<i>level</i></p>
<p style="margin-left:17%;">Debug level (sets
<b>--bo-debug</b> <i>level</i>,
<b>--debug-level-analysis</b> <i>level</i>,
<b>--debug-level-capture</b> <i>level</i>,
<b>--debug-level-linters</b> <i>level</i>):</p>
<p style="margin-left:11%;">- 0: only basic debugging
enabled <br>
- 1: verbose debugging enabled <br>
- 2: very verbose debugging enabled <b><br>
--debug-level-analysis</b> <i>int</i></p>
<p style="margin-left:17%;">Debug level for the analysis.
See <b>--debug-level</b> for accepted values.</p>
<p style="margin-left:11%;"><b>--debug-level-capture</b>
<i>int</i></p>
<p style="margin-left:17%;">Debug level for the capture.
See <b>--debug-level</b> for accepted values.</p>
<p style="margin-left:11%;"><b>--debug-level-linters</b>
<i>int</i></p>
<p style="margin-left:17%;">Debug level for the linters.
See <b>--debug-level</b> for accepted values.</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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%;"><b>--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:</p>
<p style="margin-left:11%; margin-top: 1em">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>
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>
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>
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>
NULLPTR_DEREFERENCE (enabled by default), <br>
NULL_DEREFERENCE (enabled by default), <br>
OPTIONAL_EMPTY_ACCESS (disabled 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 (disabled 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>
TOPL_BIABD_ERROR (enabled by default), <br>
TOPL_PULSE_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). <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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--help</b></p>
<p style="margin-left:17%;">Show this manual</p>
<p style="margin-left:11%;"><b>--help-format</b> <i>{ auto
| groff | pager | plain }</i></p>
<p style="margin-left:17%;">Show this help in the specified
format. <b>auto</b> sets the format to <b>plain</b> if the
environment variable <b>TERM</b> is &quot;dumb&quot; or
undefined, and to <b>pager</b> otherwise.</p>
<p style="margin-left:11%;"><b>--help-full</b></p>
<p style="margin-left:17%;">Show this manual with all
internal options in the INTERNAL OPTIONS section</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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%;"><b>--print-logs</b></p>
<p style="margin-left:17%;">Activates: Also log messages to
stdout and stderr (Conversely: <b>--no-print-logs</b>)</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--report-immutable-modifications</b></p>
<p style="margin-left:17%;">Activates: Report modifications
to immutable fields (Conversely:
<b>--no-report-immutable-modifications</b>)</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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%;"><b>--results-dir</b>,<b>-o</b>
<i>dir</i></p>
<p style="margin-left:17%;">Write results and internal
files in the specified directory</p>
<p style="margin-left:11%;"><b>--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>
<a name="HOISTING OPTIONS"></a>
<h2>HOISTING OPTIONS</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--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>
<a name="ENVIRONMENT"></a>
<h2>ENVIRONMENT</h2>
<p style="margin-left:11%; margin-top: 1em"><b>INFER_ARGS</b>,
<b>INFERCONFIG</b>, <b>INFER_STRICT_MODE</b></p>
<p style="margin-left:17%;">See the ENVIRONMENT section in
the manual of <b>infer</b>(1).</p>
<a name="FILES"></a>
<h2>FILES</h2>
<p style="margin-left:11%; margin-top: 1em"><b>.inferconfig</b></p>
<p style="margin-left:17%;">See the FILES section in the
manual of <b>infer</b>(1).</p>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<p style="margin-left:11%; margin-top: 1em"><b>infer-reportdiff</b>(1),
<b>infer-run</b>(1)</p>
<hr>
</body>
</html>