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.

344 lines
13 KiB

NAME
infer-capture - capture source files for later analysis
SYNOPSIS
infer capture --buck-java [options] -- buck ...
infer capture --buck-clang [options] -- buck ...
infer capture --buck-compilation-database [no-]deps [options] -- buck ...
infer capture [options] --compilation-database file
infer capture [options] --compilation-database-escaped file
infer capture [options] -- gradle/gradlew ...
infer capture [options] -- javac ...
infer capture [options] -- make/clang/gcc ...
infer capture [options] -- mvn/mvnw ...
infer capture [options] -- ndk-build ...
infer capture [--no-xcpretty] [options] -- xcodebuild ...
DESCRIPTION
Capture the build command or compilation database specified on the
command line: infer intercepts calls to the compiler to read source
files, translate them into infer's intermediate representation, and
store the result of the translation in the results directory.
OPTIONS
--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)
--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-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.
--force-delete-results-dir
Activates: Do not refuse to delete the results directory if it
doesn't look like an infer results directory. (Conversely:
--no-force-delete-results-dir)
--force-integration command
Proceed as if the first argument after -- was command. Possible
values: ant, buck, gradle, gradlew, java, javac, cc, clang, gcc,
clang++, c++, g++, make, configure, cmake, waf, mvn, mvnw,
ndk-build, rebar3, xcodebuild.
--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
--load-average,-l float
Do not start new parallel jobs if the load average is greater than
that specified (Buck and make only)
--print-logs
Activates: Also log messages to stdout and stderr (Conversely:
--no-print-logs)
--progress-bar-style { auto | plain | multiline }
Style of the progress bar. auto selects multiline if connected to
a tty, otherwise plain.
--project-root,-C dir
Specify the root directory of the project
--results-dir,-o dir
Write results and internal files in the specified directory
--skip-analysis-in-path +path_prefix_OCaml_regex
Ignore files whose path matches the given prefix (can be specified
multiple times)
--sqlite-cache-size int
SQLite cache size in pages (if positive) or kB (if negative),
follows formal of corresponding SQLite PRAGMA.
--sqlite-lock-timeout int
Timeout for SQLite results database operations, in milliseconds.
--sqlite-page-size int
SQLite page size in bytes, must be a power of two between 512 and
65536.
--workspace path
Specifies the root of the workspace, which is a directory
containing --project-root. This can be needed if the capture phase
is expected to require several different project roots, all
relative to a common workspace. Usually a single project root is
enough, though.
-- Stop argument processing, use remaining arguments as a build
command
BUCK OPTIONS
--append-buck-flavors +string
Additional Buck flavors to append to targets discovered by the
--buck-compilation-database option.
--buck-block-list +regex
Skip capture of files matched by the specified regular expression.
Only the clang, non-compilation-database Buck integration is supported, not Java.
--buck-clang
Activates: Buck integration for clang-based targets
(C/C++/Objective-C/Objective-C++). (Conversely: --no-buck-clang)
--buck-clang-use-toolchain-config
Activates: Suppress setting buck config values for the infer
binary and other values in the buck-clang-flavor integration and
instead rely on buck toolchain configuration options. (Conversely:
--no-buck-clang-use-toolchain-config)
--buck-compilation-database { no-deps | deps }
Buck integration using the compilation database, with or without
dependencies. Only includes clang targets, as per Buck's
#compilation-database flavor.
--buck-compilation-database-depth int
Depth of dependencies used by the --buck-compilation-database deps
option. By default, all recursive dependencies are captured.
--buck-java-flavor
Activates: Buck integration for Java which uses the buck flavor
#infer-java-capture instead of genrules like buck-java.
(Conversely: --no-buck-java-flavor)
--buck-java-flavor-suppress-config
Activates: Suppress setting buck config values for the infer
binary and its version in the buck-java-flavor integration.
(Conversely: --no-buck-java-flavor-suppress-config)
--buck-java-heap-size-gb int
Explicitly set the size of the Java heap of Buck processes, in
gigabytes.
--buck-merge-all-deps
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 --buck-clang. (Conversely:
--no-buck-merge-all-deps)
--buck-targets-block-list +regex
Skip capture of buck targets matched by the specified regular
expression. Only valid for --buck-compilation-database.
--Xbuck +string
Pass values as command-line arguments to invocations of `buck
build`. Only valid for --buck-clang.
--Xbuck-no-inline +string
Pass values as command-line arguments to invocations of `buck
build`, don't inline any args starting with '@'. Only valid for
--buck-clang.
--xcode-developer-dir XCODE_DEVELOPER_DIR
Specify the path to Xcode developer directory, to use for Buck
clang targets
CLANG LINTERS OPTIONS
--debug-level-linters int
Debug level for the linters. See --debug-level for accepted
values.
--no-default-linters
Deactivates: Use the default linters for the analysis.
(Conversely: --default-linters)
--linter string
From the linters available, only run this one linter. (Useful
together with --linters-developer-mode)
--linters-def-file +file
Specify the file containing linters definition (e.g. 'linters.al')
--linters-def-folder +dir
Specify the folder containing linters files with extension .al
--linters-developer-mode
Activates: Debug mode for developing new linters. (Sets the
analyzer to linters; also sets --debug, --debug-level-linters 2,
--developer-mode, and unsets --allowed-failures and
--default-linters. (Conversely: --no-linters-developer-mode)
--linters-doc-url +string
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.
--linters-ignore-clang-failures
Activates: Continue linting files even if some compilation fails.
(Conversely: --no-linters-ignore-clang-failures)
--linters-validate-syntax-only
Activates: Validate syntax of AL files, then emit possible errors
in JSON format to stdout (Conversely:
--no-linters-validate-syntax-only)
CLANG OPTIONS
--clang-biniou-file file
Specify a file containing the AST of the program, in biniou
format. Please note you still need to provide a compilation
command.
--clang-block-listed-flags +string
Clang flags to filter out
--clang-block-listed-flags-with-arg +string
Clang flags (taking args) to filter out
--clang-compound-literal-init-limit int
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.
--clang-yojson-file file
Specify a file containing the AST of the program, in yojson
format. Please note you still need to provide a compilation
command.
--compilation-database +path
File that contain compilation commands (can be specified multiple
times)
--compilation-database-escaped +path
File that contain compilation commands where all entries are
escaped for the shell, eg coming from Xcode (can be specified
multiple times)
--no-cxx
Deactivates: Analyze C++ methods (Conversely: --cxx)
--dump-duplicate-symbols
Activates: Dump all symbols with the same name that are defined in
more than one file. (Conversely: --no-dump-duplicate-symbols)
--frontend-tests
Activates: Save filename.ext.test.dot with the cfg in dotty format
for frontend tests (also sets --print-types) (Conversely:
--no-frontend-tests)
--headers
Activates: Analyze code in header files (Conversely: --no-headers)
--skip-non-capture-clang-commands
Activates: Skip clang commands that Infer doesn't use to capture
data (Conversely: --no-skip-non-capture-clang-commands)
--skip-translation-headers +path_regex
Ignore declarations in headers whose path matches the given OCaml
regex from the start of the string during capture.
--Xclang +string
Pass values as command-line arguments to invocations of clang
--xcpretty
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 `infer -- <xcodebuild command>`.
(Conversely: --no-xcpretty)
ERLANG OPTIONS
--erlang-ast-dir dir
Also load AST from all .json files in the given path. These .json
files usually come from a previous run with --debug.
--erlang-skip-rebar3
Activates: Skip running rebar, to save time. It is useful together
with --erlang-ast-dir. (Conversely: --no-erlang-skip-rebar3)
JAVA OPTIONS
--bootclasspath string
Specify the Java bootclasspath
--capture-block-list regex
Skip capture of files matched by the specified OCaml regular
expression (only supported by the javac integration for now).
--dependencies
Activates: Translate all the dependencies during the capture. The
classes in the given jar file will be translated. No sources
needed. (Conversely: --no-dependencies)
--generated-classes path
Specify where to load the generated class files
--java-jar-compiler path
Specify the Java compiler jar used to generate the bytecode
--java-version int
The version of Java being used. Set it to your Java version if mvn
is failing.
--kotlin-capture
Activates: Enable Kotlin capture (experimental, do not use).
(Conversely: --no-kotlin-capture)
--no-mask-sawja-exceptions
Deactivates: Mask exceptions thrown by Sawja/Javalib during Java
capture (Conversely: --mask-sawja-exceptions)
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-analyze(1), infer-compile(1), infer-run(1)