# infer-analyze

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
BUCK FLAVORS OPTIONS
BUFFER OVERRUN OPTIONS
CLANG OPTIONS
CRASHCONTEXT OPTIONS
JAVA OPTIONS
QUANDARY CHECKER OPTIONS
RACERD CHECKER OPTIONS
SIOF CHECKER OPTIONS
ENVIRONMENT
FILES
SEE ALSO

## NAME

infer-analyze - analyze the files captured by infer

## SYNOPSIS

infer analyze [options]
infer [options]

## DESCRIPTION

Analyze the files captured in the project results directory and report.

## OPTIONS

--analyzer,-a { checkers | infer | capture | compile | crashcontext |
linters }

Specify which analyzer to run (only one at a time is supported):

- biabduction: run the bi-abduction based checker only, in
particular to check for memory errors
- checkers: run the default checkers, including the bi-abduction
based checker for memory errors (default)
- infer: alias for biabduction
- linters: run linters based on the ast only (clang only,
activated by default)
- capture: similar to specifying the capture subcommand
(DEPRECATED)
- compile: similar to specifying the compile subcommand
(DEPRECATED)
- crashcontext: experimental (see --crashcontext)
--no-annotation-reachability

Deactivates: the annotation reachability checker. Given a pair of source and sink annotation, e.g. @PerformanceCritical and @Expensive, this checker will warn whenever some method annotated with @PerformanceCritical calls, directly or indirectly, another method annotated with @Expensive (Conversely: --annotation-reachability)

--annotation-reachability-only

Activates: Enable --annotation-reachability and disable all other checkers (Conversely: --no-annotation-reachability-only)

--no-biabduction

Deactivates: the separation logic based bi-abduction analysis using the checkers framework (Conversely: --biabduction)

--biabduction-only

Activates: Enable --biabduction and disable all other checkers (Conversely: --no-biabduction-only)

--bufferoverrun

Activates: the buffer overrun analysis (Conversely: --no-bufferoverrun)

--bufferoverrun-only

Activates: Enable --bufferoverrun and disable all other checkers (Conversely: --no-bufferoverrun-only)

--changed-files-index file

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

--check-nullable

Activates: checks that values annotated with nullable are always checked for null before dereference (Conversely: --no-check-nullable)

--check-nullable-only

Activates: Enable --check-nullable and disable all other checkers (Conversely: --no-check-nullable-only)

--continue

Activates: Continue the capture for the reactive analysis, increasing the changed files/procedures. (If a procedure was changed beforehand, keep the changed marking.) (Conversely: --no-continue)

--cost

Activates: checker for performance cost analysis (Conversely: --no-cost)

--cost-only

Activates: Enable --cost and disable all other checkers (Conversely: --no-cost-only)

--crashcontext

Activates: the crashcontext checker for Java stack trace context reconstruction (Conversely: --no-crashcontext)

--crashcontext-only

Activates: Enable --crashcontext and disable all other checkers (Conversely: --no-crashcontext-only)

--debug,-g

Activates: Debug mode (also sets --debug-level 2, --developer-mode, --no-filtering, --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. (default: 0)

--debug-level-capture int

Debug level for the capture. See --debug-level for accepted values. (default: 0)

--debug-level-linters int

Debug level for the linters. See --debug-level for accepted values. (default: 0)

--no-default-checkers

Deactivates: Default checkers: --annotation-reachability, --biabduction, --fragment-retains-view, --immutable-cast, --linters, --liveness, --ownership, --printf-args, --racerd, --siof, --uninit (Conversely: --default-checkers)

--eradicate

Activates: the eradicate @Nullable checker for Java annotations (Conversely: --no-eradicate)

--eradicate-only

Activates: Enable --eradicate and disable all other checkers (Conversely: --no-eradicate-only)

--no-fragment-retains-view

Deactivates: detects when Android fragments are not explicitly nullified before becoming unreabable (Conversely: --fragment-retains-view)

--fragment-retains-view-only

Activates: Enable --fragment-retains-view and disable all other checkers (Conversely: --no-fragment-retains-view-only)

--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. (default: auto)

--help-full

Show this manual with all internal options in the INTERNAL OPTIONS section

--no-immutable-cast

Deactivates: the detection of object cast from immutable type to mutable type. For instance, it will detect cast from ImmutableList to List, ImmutableMap to Map, and ImmutableSet to Set. (Conversely: --immutable-cast)

--immutable-cast-only

Activates: Enable --immutable-cast and disable all other checkers (Conversely: --no-immutable-cast-only)

--jobs,-j int

Run the specified number of analysis jobs simultaneously (default: 4)

--keep-going

Activates: Keep going when the analysis encounters a failure (Conversely: --no-keep-going)

--no-linters

Deactivates: syntactic linters (Conversely: --linters)

--linters-only

Activates: Enable --linters and disable all other checkers (Conversely: --no-linters-only)

--litho

Activates: Experimental checkers supporting the Litho framework (Conversely: --no-litho)

--litho-only

Activates: Enable --litho and disable all other checkers (Conversely: --no-litho-only)

--no-liveness

Deactivates: the detection of dead stores and unused variables (Conversely: --liveness)

--liveness-only

Activates: Enable --liveness and disable all other checkers (Conversely: --no-liveness-only)

--no-ownership

Deactivates: the detection of C++ lifetime bugs (Conversely: --ownership)

--ownership-only

Activates: Enable --ownership and disable all other checkers (Conversely: --no-ownership-only)

--print-active-checkers

Activates: Print the active checkers before starting the analysis (Conversely: --no-print-active-checkers)

--print-logs

Activates: Also log messages to stdout and stderr (Conversely: --no-print-logs)

--no-printf-args

Deactivates: the detection of mismatch between the Java printf format strings and the argument types For, example, this checker will warn about the type error in ’printf("Hello %d", "world")’ (Conversely: --printf-args)

--printf-args-only

Activates: Enable --printf-args and disable all other checkers (Conversely: --no-printf-args-only)

--project-root,-C dir

Specify the root directory of the project (default: /home/jul/infer.fb)

--quandary

Activates: the quandary taint analysis (Conversely: --no-quandary)

--quandary-only

Activates: Enable --quandary and disable all other checkers (Conversely: --no-quandary-only)

--quiet,-q

Activates: Do not print specs on standard output (default: only print for the report command) (Conversely: --no-quiet | -Q)

--no-racerd

Deactivates: the RacerD thread safety analysis (Conversely: --racerd)

--racerd-only

Activates: Enable --racerd and disable all other checkers (Conversely: --no-racerd-only)

--reactive,-r

Activates: Reactive mode: the analysis starts from the files captured since the infer command started (Conversely: --no-reactive | -R)

--no-report

Deactivates: Run the reporting phase once the analysis has completed (Conversely: --report)

--report-hook script

Specify a script to be executed after the analysis results are written. This script will be passed, --issues-json, --issues-txt, --issues-xml, --project-root, and --results-dir. (default: /home/jul/infer.fb/infer/bin/../lib/python/report.py)

--results-dir,-o dir

Write results and internal files in the specified directory (default: /home/jul/infer.fb/infer-out)

--no-siof

Deactivates: the Static Initialization Order Fiasco analysis (C++ only) (Conversely: --siof)

--siof-only

Activates: Enable --siof and disable all other checkers (Conversely: --no-siof-only)

--starvation

Activates: starvation analysis (Conversely: --no-starvation)

--starvation-only

Activates: Enable --starvation and disable all other checkers (Conversely: --no-starvation-only)

--suggest-nullable

Activates: Nullable annotation sugesstions analysis (Conversely: --no-suggest-nullable)

--suggest-nullable-only

Activates: Enable --suggest-nullable and disable all other checkers (Conversely: --no-suggest-nullable-only)

--no-uninit

Deactivates: checker for use of uninitialized values (Conversely: --uninit)

--uninit-only

Activates: Enable --uninit and disable all other checkers (Conversely: --no-uninit-only)

## BUCK FLAVORS OPTIONS

--merge

Activates: Merge the captured results directories specified in the dependency file (Conversely: --no-merge)

## BUFFER OVERRUN OPTIONS

--bo-debug int

Debug level for buffer-overrun checker (0-4) (default: 0)

## CLANG OPTIONS

--cxx-scope-guards json

Specify scope guard classes that can be read only by destructors without being reported as dead stores. (default: [])

--ml-buckets ,-separated sequence of { all | cf | arc | narc | cpp |
unknown_origin }

Specify the memory leak buckets to be checked in C++:

- cpp from C++ code
(default: cf)
--unsafe-malloc

Activates: Assume that malloc(3) never returns null. (Conversely: --no-unsafe-malloc)

## CRASHCONTEXT OPTIONS

--stacktrace file

File path containing a json-encoded Java crash stacktrace. Used to guide the analysis (only with '-a crashcontext'). See tests/codetoanalyze/java/crashcontext/*.json for examples of the expected format.

--stacktraces-dir dir

Directory path containing multiple json-encoded Java crash stacktraces. Used to guide the analysis (only with '-a crashcontext'). See tests/codetoanalyze/java/crashcontext/*.json for examples of the expected format.

## JAVA OPTIONS

--annotation-reachability-custom-pairs json

Specify custom sources/sink for the annotation reachability checker

Example format: for custom annotations
com.my.annotation.{Source1,Source2,Sink1}
{ "sources" : ["Source1", "Source2"], "sink" : "Sink1" }
(default: [])
--external-java-packages +prefix

Specify a list of Java package prefixes for external Java packages. If set, the analysis will not report non-actionable warnings on those packages.

## QUANDARY CHECKER OPTIONS

--quandary-endpoints json

Specify endpoint classes for Quandary (default: [])

--quandary-sanitizers json

Specify custom sanitizers for Quandary (default: [])

--quandary-sinks json

Specify custom sinks for Quandary (default: [])

--quandary-sources json

Specify custom sources for Quandary (default: [])

## RACERD CHECKER OPTIONS

--threadsafe-aliases json

Specify custom annotations that should be considered aliases of @ThreadSafe (default: [])

## SIOF CHECKER OPTIONS

--siof-check-iostreams

Activates: Do not assume that iostreams (cout, cerr, ...) are always initialized. The default is to assume they are always initialized when --cxx-infer-headers is false to avoid false positives due to lack of models of the proper initialization of io streams. However, if your program compiles against a recent libstdc++ then the infer models are not needed for precision and it is safe to turn this option on. (Conversely: --no-siof-check-iostreams)

--siof-safe-methods +string

Methods that are SIOF-safe; "foo::bar" will match "foo::bar()", "foo<int>::bar()", etc. (can be specified multiple times)

## 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-report(1), infer-run(1)