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.
362 lines
17 KiB
362 lines
17 KiB
NAME
|
|
infer-report - compute and manipulate infer results
|
|
|
|
SYNOPSIS
|
|
infer report [options] [file.specs...]
|
|
|
|
|
|
DESCRIPTION
|
|
Read, convert, and print .specs files in the results directory. Each
|
|
spec is printed to standard output unless option -q is used.
|
|
|
|
If no specs file are passed on the command line, process all the
|
|
.specs in the results directory.
|
|
|
|
|
|
|
|
OPTIONS
|
|
--censor-report +string
|
|
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.
|
|
|
|
--cost-issues-tests file
|
|
Write a list of cost issues in a format suitable for cost tests to
|
|
file
|
|
|
|
--debug,-g
|
|
Activates: Debug mode (also sets --debug-level 2,
|
|
--developer-mode, --print-buckets, --print-types,
|
|
--reports-include-ml-loc, --no-only-cheap-debug, --trace-error,
|
|
--write-dotty, --write-html) (Conversely: --no-debug | -G)
|
|
|
|
--debug-level level
|
|
Debug level (sets --bo-debug level, --debug-level-analysis level,
|
|
--debug-level-capture level, --debug-level-linters level):
|
|
- 0: only basic debugging enabled
|
|
- 1: verbose debugging enabled
|
|
- 2: very verbose debugging enabled
|
|
|
|
--debug-level-analysis int
|
|
Debug level for the analysis. See --debug-level for accepted
|
|
values.
|
|
|
|
--debug-level-capture int
|
|
Debug level for the capture. See --debug-level for accepted
|
|
values.
|
|
|
|
--debug-level-linters int
|
|
Debug level for the linters. See --debug-level for accepted
|
|
values.
|
|
|
|
--no-deduplicate
|
|
Deactivates: Apply issue-specific deduplication during analysis
|
|
and/or reporting. (Conversely: --deduplicate)
|
|
|
|
--differential-filter-files string
|
|
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
|
|
|
|
--disable-issue-type +issue_type
|
|
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. Available issue types are as follows:
|
|
|
|
ARRAY_OUT_OF_BOUNDS_L1 (disabled by default),
|
|
ARRAY_OUT_OF_BOUNDS_L2 (disabled by default),
|
|
ARRAY_OUT_OF_BOUNDS_L3 (disabled by default),
|
|
ASSIGN_POINTER_WARNING (enabled by default),
|
|
Abduction_case_not_implemented (enabled by default),
|
|
Array_of_pointsto (enabled by default),
|
|
Assert_failure (enabled by default),
|
|
BAD_POINTER_COMPARISON (enabled by default),
|
|
BIABDUCTION_ANALYSIS_STOPS (disabled by default),
|
|
BIABDUCTION_MEMORY_LEAK (disabled by default),
|
|
BIABD_CONDITION_ALWAYS_FALSE (disabled by default),
|
|
BIABD_CONDITION_ALWAYS_TRUE (disabled by default),
|
|
BUFFER_OVERRUN_L1 (enabled by default),
|
|
BUFFER_OVERRUN_L2 (enabled by default),
|
|
BUFFER_OVERRUN_L3 (enabled by default),
|
|
BUFFER_OVERRUN_L4 (disabled by default),
|
|
BUFFER_OVERRUN_L5 (disabled by default),
|
|
BUFFER_OVERRUN_R2 (enabled by default),
|
|
BUFFER_OVERRUN_S2 (enabled by default),
|
|
BUFFER_OVERRUN_T1 (enabled by default),
|
|
BUFFER_OVERRUN_U5 (disabled by default),
|
|
Bad_footprint (enabled by default),
|
|
CAPTURED_STRONG_SELF (enabled by default),
|
|
CHECKERS_ALLOCATES_MEMORY (enabled by default),
|
|
CHECKERS_ANNOTATION_REACHABILITY_ERROR (enabled by default),
|
|
CHECKERS_CALLS_EXPENSIVE_METHOD (enabled by default),
|
|
CHECKERS_EXPENSIVE_OVERRIDES_UNANNOTATED (enabled by default),
|
|
CHECKERS_FRAGMENT_RETAINS_VIEW (enabled by default),
|
|
CHECKERS_IMMUTABLE_CAST (enabled by default),
|
|
CHECKERS_PRINTF_ARGS (enabled by default),
|
|
CLASS_CAST_EXCEPTION (disabled by default),
|
|
COMPONENT_FACTORY_FUNCTION (enabled by default),
|
|
COMPONENT_FILE_CYCLOMATIC_COMPLEXITY (enabled by default),
|
|
COMPONENT_FILE_LINE_COUNT (disabled by default),
|
|
COMPONENT_INITIALIZER_WITH_SIDE_EFFECTS (enabled by default),
|
|
COMPONENT_WITH_MULTIPLE_FACTORY_METHODS (enabled by default),
|
|
COMPONENT_WITH_UNCONVENTIONAL_SUPERCLASS (enabled by default),
|
|
CONDITION_ALWAYS_FALSE (disabled by default),
|
|
CONDITION_ALWAYS_TRUE (disabled by default),
|
|
CONFIG_CHECKS_BETWEEN_MARKERS (disabled by default),
|
|
CONSTANT_ADDRESS_DEREFERENCE (disabled by default),
|
|
CREATE_INTENT_FROM_URI (enabled by default),
|
|
CROSS_SITE_SCRIPTING (enabled by default),
|
|
CXX_REFERENCE_CAPTURED_IN_OBJC_BLOCK (enabled by default),
|
|
Cannot_star (enabled by default),
|
|
DANGLING_POINTER_DEREFERENCE (disabled by default),
|
|
DANGLING_POINTER_DEREFERENCE_MAYBE (disabled by default),
|
|
DEADLOCK (enabled by default),
|
|
DEAD_STORE (enabled by default),
|
|
DEALLOCATE_STACK_VARIABLE (enabled by default),
|
|
DEALLOCATE_STATIC_MEMORY (enabled by default),
|
|
DIRECT_ATOMIC_PROPERTY_ACCESS (enabled by default),
|
|
DISCOURAGED_WEAK_PROPERTY_CUSTOM_SETTER (enabled by default),
|
|
DIVIDE_BY_ZERO (disabled by default),
|
|
DO_NOT_REPORT (enabled by default),
|
|
EMPTY_VECTOR_ACCESS (enabled by default),
|
|
ERADICATE_BAD_NESTED_CLASS_ANNOTATION (enabled by default),
|
|
ERADICATE_CONDITION_REDUNDANT (enabled by default),
|
|
ERADICATE_CONDITION_REDUNDANT_NONNULL (enabled by default),
|
|
ERADICATE_FIELD_NOT_INITIALIZED (enabled by default),
|
|
ERADICATE_FIELD_NOT_NULLABLE (enabled by default),
|
|
ERADICATE_FIELD_OVER_ANNOTATED (enabled by default),
|
|
ERADICATE_INCONSISTENT_SUBCLASS_PARAMETER_ANNOTATION (enabled
|
|
by default),
|
|
ERADICATE_INCONSISTENT_SUBCLASS_RETURN_ANNOTATION (enabled by
|
|
default),
|
|
ERADICATE_META_CLASS_CAN_BE_NULLSAFE (disabled by default),
|
|
ERADICATE_META_CLASS_IS_NULLSAFE (disabled by default),
|
|
ERADICATE_META_CLASS_NEEDS_IMPROVEMENT (disabled by default),
|
|
ERADICATE_NULLABLE_DEREFERENCE (enabled by default),
|
|
ERADICATE_PARAMETER_NOT_NULLABLE (enabled by default),
|
|
ERADICATE_REDUNDANT_NESTED_CLASS_ANNOTATION (enabled by
|
|
default),
|
|
ERADICATE_RETURN_NOT_NULLABLE (enabled by default),
|
|
ERADICATE_RETURN_OVER_ANNOTATED (enabled by default),
|
|
ERADICATE_UNCHECKED_USAGE_IN_NULLSAFE (enabled by default),
|
|
ERADICATE_UNVETTED_THIRD_PARTY_IN_NULLSAFE (enabled by
|
|
default),
|
|
EXECUTION_TIME_COMPLEXITY_INCREASE (enabled by default),
|
|
EXECUTION_TIME_COMPLEXITY_INCREASE_UI_THREAD (enabled by
|
|
default),
|
|
EXECUTION_TIME_UNREACHABLE_AT_EXIT (disabled by default),
|
|
EXPENSIVE_LOOP_INVARIANT_CALL (enabled by default),
|
|
EXPOSED_INSECURE_INTENT_HANDLING (enabled by default),
|
|
Failure_exe (enabled by default),
|
|
GLOBAL_VARIABLE_INITIALIZED_WITH_FUNCTION_OR_METHOD_CALL
|
|
(disabled by default),
|
|
GUARDEDBY_VIOLATION (enabled by default),
|
|
IMPURE_FUNCTION (enabled by default),
|
|
INEFFICIENT_KEYSET_ITERATOR (enabled by default),
|
|
INFERBO_ALLOC_IS_BIG (enabled by default),
|
|
INFERBO_ALLOC_IS_NEGATIVE (enabled by default),
|
|
INFERBO_ALLOC_IS_ZERO (enabled by default),
|
|
INFERBO_ALLOC_MAY_BE_BIG (enabled by default),
|
|
INFERBO_ALLOC_MAY_BE_NEGATIVE (enabled by default),
|
|
INFERBO_ALLOC_MAY_BE_TAINTED (enabled by default),
|
|
INFINITE_EXECUTION_TIME (disabled by default),
|
|
INHERENTLY_DANGEROUS_FUNCTION (enabled by default),
|
|
INSECURE_INTENT_HANDLING (enabled by default),
|
|
INTEGER_OVERFLOW_L1 (enabled by default),
|
|
INTEGER_OVERFLOW_L2 (enabled by default),
|
|
INTEGER_OVERFLOW_L5 (disabled by default),
|
|
INTEGER_OVERFLOW_R2 (enabled by default),
|
|
INTEGER_OVERFLOW_U5 (disabled by default),
|
|
INTERFACE_NOT_THREAD_SAFE (enabled by default),
|
|
INVARIANT_CALL (disabled by default),
|
|
IVAR_NOT_NULL_CHECKED (enabled by default),
|
|
Internal_error (enabled by default),
|
|
JAVASCRIPT_INJECTION (enabled by default),
|
|
LAB_RESOURCE_LEAK (enabled by default),
|
|
LOCKLESS_VIOLATION (enabled by default),
|
|
LOCK_CONSISTENCY_VIOLATION (enabled by default),
|
|
LOGGING_PRIVATE_DATA (enabled by default),
|
|
Leak_after_array_abstraction (enabled by default),
|
|
Leak_in_footprint (enabled by default),
|
|
Leak_unknown_origin (disabled by default),
|
|
MEMORY_LEAK (enabled by default),
|
|
MISSING_REQUIRED_PROP (enabled by default),
|
|
MIXED_SELF_WEAKSELF (enabled by default),
|
|
MULTIPLE_WEAKSELF (enabled by default),
|
|
MUTABLE_LOCAL_VARIABLE_IN_COMPONENT_FILE (enabled by default),
|
|
Missing_fld (enabled by default),
|
|
NULLPTR_DEREFERENCE (disabled by default),
|
|
NULL_DEREFERENCE (enabled by default),
|
|
NULL_TEST_AFTER_DEREFERENCE (disabled by default),
|
|
PARAMETER_NOT_NULL_CHECKED (enabled by default),
|
|
POINTER_SIZE_MISMATCH (enabled by default),
|
|
POINTER_TO_CONST_OBJC_CLASS (enabled by default),
|
|
PRECONDITION_NOT_FOUND (enabled by default),
|
|
PRECONDITION_NOT_MET (enabled by default),
|
|
PREMATURE_NIL_TERMINATION_ARGUMENT (enabled by default),
|
|
PURE_FUNCTION (enabled by default),
|
|
QUANDARY_TAINT_ERROR (enabled by default),
|
|
REGISTERED_OBSERVER_BEING_DEALLOCATED (enabled by default),
|
|
RESOURCE_LEAK (enabled by default),
|
|
RETAIN_CYCLE (enabled by default),
|
|
SHELL_INJECTION (enabled by default),
|
|
SHELL_INJECTION_RISK (enabled by default),
|
|
SKIP_FUNCTION (disabled by default),
|
|
SKIP_POINTER_DEREFERENCE (disabled by default),
|
|
SQL_INJECTION (enabled by default),
|
|
SQL_INJECTION_RISK (enabled by default),
|
|
STACK_VARIABLE_ADDRESS_ESCAPE (enabled by default),
|
|
STARVATION (enabled by default),
|
|
STATIC_INITIALIZATION_ORDER_FIASCO (enabled by default),
|
|
STRICT_MODE_VIOLATION (enabled by default),
|
|
STRONG_DELEGATE_WARNING (enabled by default),
|
|
STRONG_SELF_NOT_CHECKED (enabled by default),
|
|
Symexec_memory_error (enabled by default),
|
|
THREAD_SAFETY_VIOLATION (enabled by default),
|
|
TOPL_ERROR (enabled by default),
|
|
UNARY_MINUS_APPLIED_TO_UNSIGNED_EXPRESSION (disabled by
|
|
default),
|
|
UNAVAILABLE_API_IN_SUPPORTED_IOS_SDK (enabled by default),
|
|
UNINITIALIZED_VALUE (enabled by default),
|
|
UNREACHABLE_CODE (enabled by default),
|
|
UNTRUSTED_BUFFER_ACCESS (disabled by default),
|
|
UNTRUSTED_DESERIALIZATION (enabled by default),
|
|
UNTRUSTED_DESERIALIZATION_RISK (enabled by default),
|
|
UNTRUSTED_ENVIRONMENT_CHANGE_RISK (enabled by default),
|
|
UNTRUSTED_FILE (enabled by default),
|
|
UNTRUSTED_FILE_RISK (enabled by default),
|
|
UNTRUSTED_HEAP_ALLOCATION (disabled by default),
|
|
UNTRUSTED_INTENT_CREATION (enabled by default),
|
|
UNTRUSTED_URL_RISK (enabled by default),
|
|
UNTRUSTED_VARIABLE_LENGTH_ARRAY (enabled by default),
|
|
USER_CONTROLLED_SQL_RISK (enabled by default),
|
|
USE_AFTER_DELETE (enabled by default),
|
|
USE_AFTER_FREE (enabled by default),
|
|
USE_AFTER_LIFETIME (enabled by default),
|
|
VECTOR_INVALIDATION (enabled by default),
|
|
WEAK_SELF_IN_NO_ESCAPE_BLOCK (enabled by default),
|
|
Wrong_argument_number (enabled by default).
|
|
|
|
|
|
--enable-issue-type +issue_type
|
|
Show reports coming from this type of issue. By default, all issue
|
|
types are enabled except the ones listed in --disable-issue-type.
|
|
Note that enabling issue types does not make the corresponding
|
|
checker run; see individual checker options to turn them on or
|
|
off.
|
|
|
|
--no-filtering,-F
|
|
Deactivates: Do not show the experimental and blacklisted issue
|
|
types (Conversely: --filtering | -f)
|
|
|
|
--from-json-costs-report costs-report.json
|
|
Load costs analysis results from a costs-report file.
|
|
|
|
--from-json-report report.json
|
|
Load analysis results from a report file (default is to load the
|
|
results from the specs files generated by the analysis).
|
|
|
|
--help
|
|
Show this manual
|
|
|
|
--help-format { auto | groff | pager | plain }
|
|
Show this help in the specified format. auto sets the format to
|
|
plain if the environment variable TERM is "dumb" or undefined, and
|
|
to pager otherwise.
|
|
|
|
--help-full
|
|
Show this manual with all internal options in the INTERNAL OPTIONS
|
|
section
|
|
|
|
--issues-tests file
|
|
Write a list of issues in a format suitable for tests to file
|
|
|
|
--issues-tests-fields ,-separated sequence of { bug_type | bucket |
|
|
qualifier | severity | line | column | procedure |
|
|
procedure_start_line | file | bug_trace | key | hash | line_offset |
|
|
qualifier_contains_potential_exception_note | nullsafe_extra }
|
|
Fields to emit with --issues-tests
|
|
|
|
--print-logs
|
|
Activates: Also log messages to stdout and stderr (Conversely:
|
|
--no-print-logs)
|
|
|
|
--project-root,-C dir
|
|
Specify the root directory of the project
|
|
|
|
--quiet,-q
|
|
Activates: Do not print anything on standard output. (Conversely:
|
|
--no-quiet | -Q)
|
|
|
|
--report-blacklist-files-containing +string
|
|
Do not report any issues on files containing the specified string
|
|
|
|
--report-blacklist-path-regex +path_regex
|
|
Do not report any issues on files whose relative path matches the
|
|
specified OCaml regex, even if they match the whitelist specified
|
|
by --report-whitelist-path-regex
|
|
|
|
--report-console-limit int
|
|
Maximum number of issues to display on standard output. Unset with
|
|
--report-console-limit-reset to show all.
|
|
|
|
--report-formatter { none | phabricator }
|
|
Which formatter to use when emitting the report
|
|
|
|
--report-suppress-errors +error_name
|
|
do not report a type of errors
|
|
|
|
--report-whitelist-path-regex +path_regex
|
|
Report issues only on files whose relative path matches the
|
|
specified OCaml regex (and which do not match
|
|
--report-blacklist-path-regex)
|
|
|
|
--results-dir,-o dir
|
|
Write results and internal files in the specified directory
|
|
|
|
--skip-analysis-in-path-skips-compilation
|
|
Activates: Whether paths in --skip-analysis-in-path should be
|
|
compiled or not (Conversely:
|
|
--no-skip-analysis-in-path-skips-compilation)
|
|
HOISTING OPTIONS
|
|
--no-hoisting-report-only-expensive
|
|
Deactivates: [Hoisting] Report loop-invariant calls only when the
|
|
function is expensive, i.e. at least linear (Conversely:
|
|
--hoisting-report-only-expensive)
|
|
|
|
|
|
ENVIRONMENT
|
|
INFER_ARGS, INFERCONFIG, INFER_STRICT_MODE
|
|
See the ENVIRONMENT section in the manual of infer(1).
|
|
|
|
FILES
|
|
.inferconfig
|
|
See the FILES section in the manual of infer(1).
|
|
|
|
|
|
|
|
|
|
SEE ALSO
|
|
infer-reportdiff(1), infer-run(1)
|
|
|
|
|
|
|