infer-run(1)

πŸ“¦ version 1.3.0, in nixpkgs unstable

πŸ’– infer-run(1) β€” Infer Analysis of a Project πŸ’–

🌸 NAME 🌸

infer-run β€” capture source files, analyze, and report. bestie, that's the whole arc: grab the source, run the analysis, spill the report.

✨ SYNOPSIS ✨

infer run [options]
infer [options] -- compile command

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so calling infer run [options] is literally equivalent to doing this sequence:

infer capture [options]
infer analyze [options]

capture era first, analyze era second. no cap.

πŸ’… OPTIONS πŸ’…

  • --capture-block-list json β€” Matcher or list of matchers for names of files that should not be captured, hence not analyzed either. Clang, Java, and Hack only.
  • --no-censor-report +issue_type_regex β€” For debugging/experimentation only: specify issues not to be censored by --censor-report. literally just for poking around, bestie.
  • --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 β€œblock list” instead of a β€œallow list”. 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. filtering with lore, honestly.
  • --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). the full debug goblin mode package.
  • --debug-level level β€” Debug level (sets --bo-debug level, --debug-level-analysis level, --debug-level-capture 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-report int β€” Debug level for the report. See --debug-level for accepted values.
  • --fail-on-issue β€” Activates: Exit with error code 2 if Infer found something to report (Conversely: --no-fail-on-issue). dramatic exit era, but make it CI.
  • --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, buck2, gradle, gradlew, java, javac, kotlinc, cc, clang, gcc, clang++, c++, g++, hackc, make, configure, cmake, waf, mvn, mvnw, ndk-build, python3, rebar3, rustc, swiftc, erlc, xcodebuild. the whole integration lineup, slay.
  • --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.
  • --never-returning-null json β€” [Java only, all analyses] Matcher or list of matchers for functions that never return null.
  • --pmd-xml β€” Activates: Output issues in (PMD) XML format in infer-out/report.xml (Conversely: --no-pmd-xml).
  • --print-logs β€” Activates: Also log messages to stdout and stderr (Conversely: --no-print-logs).
  • --no-progress-bar,-P β€” Deactivates: Show a progress bar (Conversely: --progress-bar | -p).
  • --project-root,-C dir β€” Specify the root directory of the project.
  • --no-report β€” Deactivates: Run the reporting phase once the analysis has completed (Conversely: --report).
  • --report-allow-list-path-regex +path_regex β€” Report issues only on files whose relative path matches the specified OCaml regex (and which do not match --report-block-list-path-regex).
  • --report-block-list-files-containing +string β€” Do not report any issues on files containing the specified string.
  • --report-block-list-path-regex +path_regex β€” Do not report any issues on files whose relative path matches the specified OCaml regex, even if they match the allow list specified by --report-allow-list-path-regex.
  • --report-block-list-spec json β€” Do not report the issues in this list.

Example format:

                   "report-block-list-spec": [
                       { "bug_type": "CXX_REF_CAPTURED_IN_BLOCK",
                         "procedure_name": "foo",
                         "file": "path/to/File.m"
                         "comment": "This is a fp because..."
                       },
                       { "bug_type": "RETAIN_CYCLE",

                         "class_name": "MyClass",
                         "procedure_name": "my_method"
                         "file": "path/to/File.m"
                       }
                   ]
  • --report-force-relative-path β€” Activates: Force converting an absolute path to a relative path to the root directory (Conversely: --no-report-force-relative-path).
  • --report-suppress-errors +error_name β€” do not report a type of errors.
  • --results-dir,-o dir β€” Write results and internal files in the specified directory.
  • --sarif β€” Activates: Output issues in SARIF (Static Analysis Results Interchange Format) in infer-out/report.sarif (Conversely: --no-sarif).
  • --skip-analysis-in-path +regex β€” Ignore files whose path matches a given regex (can be specified multiple times, but you must make sure each regex is properly bracketed). regex girlies, bracket responsibly.
  • --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-max-blob-size int β€” Maximum blob/string size for data written in SQLite.
  • --sqlite-mmap-size int β€” Size of memory map for mmaped SQLite databases, zero value disables memory mapping.
  • --sqlite-page-size int β€” SQLite page size in bytes, must be a power of two between 512 and 65536.
  • --timeout float β€” Time after which any checker should give up analysing the current function or method, in seconds. Defaults to 120 seconds. bestie gets 120 seconds, then it's over.
  • --version β€” Print version information and exit.
  • --version-json β€” Print version information in json format and exit.
  • -- β€” Stop argument processing, use remaining arguments as a build command.

🧚 BUCK OPTIONS 🧚

  • --buck-targets-block-list +regex β€” Skip capture of buck targets matched by the specified regular expression.
  • --buck2-bxl-capture-file-block-list +regex β€” Skip capture of files matched by the specified regular expression. Only the clang, Buck2 integration is supported, not Java.
  • --buck2-root dir β€” Specify the parent directory of buck-out (used only for buck2).

πŸ’œ PULSE CHECKER OPTIONS πŸ’œ

  • --pulse-report-issues-reachable-from +regex β€” Re-raise issues that Pulse was able to propagate all the way to procedures matching one of the given regexes. Pulse said β€œI can see the whole path” and honestly? iconic.

🌈 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-capture(1), infer-report(1)

okay bestie, that's the manual β€” mwah πŸ’‹ β€” source/version v1.3.0-unknown, dated 2026-10-27.

πŸ“¦ where this page comes from