Type: object
No Additional Properties

Type: array of string Default: []

Files to analyze.

No Additional Items

Each item of this array must be:

Type: string

Type: string Default: ""

File to print output to.

Type: boolean Default: false

Just parse and output the CIL.

Type: boolean Default: false

Only output the CFG in cfg.dot .

Type: boolean Default: true

Verify that the solver reached a post-fixpoint. Beware that disabling this also disables output of warnings since post-processing of the results is done in the verification phase!

Type: array of string Default: ["main"]

Sets the name of the main functions.

No Additional Items

Each item of this array must be:

Type: string

Type: array of string Default: []

Sets the name of the cleanup functions.

No Additional Items

Each item of this array must be:

Type: string

Type: array of string Default: []

Sets the name of other functions.

No Additional Items

Each item of this array must be:

Type: string

Type: boolean Default: false

Prints access information about all globals, not just races.

Type: boolean Default: false

For analyzing Linux Device Drivers.

Type: boolean Default: false

Print out the global invariant.

Type: enum (of string) Default: "none"

Result style: none, fast_xml, json, pretty, json-messages, sarif.

Must be one of:

  • "none"
  • "fast_xml"
  • "json"
  • "pretty"
  • "json-messages"
  • "sarif"

Type: string Default: "td3"

Picks the solver.

Type: string Default: ""

Picks another solver for comparison.

Type: boolean Default: false

Analyzes all the functions (not just beginning from main). This requires exp.earlyglobs!

Type: boolean Default: false

Analyzes all non-static functions.

Type: enum (of string) Default: "auto"

Colored output (via ANSI escape codes). 'auto': enabled if stdout is a terminal (instead of a pipe); 'always', 'never'.

Must be one of:

  • "auto"
  • "always"
  • "never"

Type: boolean Default: false

Run g2html.jar on the generated xml.

Type: string Default: ""

Save the result of the solver, the current configuration and meta-data about the run to this directory (if set). The data can then be loaded (without solving again) to do post-processing like generating output in a different format or comparing results.

Type: string Default: ""

Load a saved run. See save_run.

Type: array of string Default: []

Load these saved runs and compare the results. Note that currently only two runs can be compared!

No Additional Items

Each item of this array must be:

Type: string

Type: enum (of string) Default: "post"

When to output warnings. Values: 'post' (default): after solving; 'never': no warnings; 'early': for debugging - outputs warnings already while solving (may lead to spurious warnings/asserts that would disappear after narrowing).

Must be one of:

  • "post"
  • "never"
  • "early"

Type: boolean Default: false

Include additional information for GobView (e.g., the Goblint warning messages) in the directory specified by 'save_run'.

Type: integer Default: 1

Maximum number of parallel jobs. If 0, then number of cores is used. Currently used for preprocessing and g2html.

Type: string Default: ".goblint"

Directory used for intermediate data.

Type: object

Preprocessing options

No Additional Properties

Type: boolean Default: true

Run the C preprocessor.

Type: boolean Default: false

Keep the intermediate output of running the C preprocessor.

Type: boolean Default: false

Use existing preprocessed files.

Type: array of string Default: []

List of directories to include.

No Additional Items

Each item of this array must be:

Type: string

Type: array of string Default: []

List of kernel directories to include.

No Additional Items

Each item of this array must be:

Type: array of string Default: []

List of custom directories to include.

No Additional Items

Each item of this array must be:

Type: string Default: ""

Root directory for Linux kernel (linux-headers)

Type: array of string Default: []

Pre-processing parameters.

No Additional Items

Each item of this array must be:

Type: string

Type: object
No Additional Properties

Type: string Default: ""

Original absolute path of Compilation Database. Used to reroot all absolute paths in there if moved, e.g. in container mounts.

Type: boolean Default: false

Split Compilation Database entries containing multiple .c files.

Type: boolean Default: true

Normalize and relativize paths in parsed CIL locations. Can cause issues locating YAML witness invariants due to differing paths.

Type: object

CIL configuration

No Additional Properties

Type: object
No Additional Properties

Type: boolean Default: true

Merge inline functions (by their body printout).

Type: enum (of string) Default: "c99"

Specify the c standard used for parsing.

Must be one of:

  • "c90"
  • "c99"
  • "c11"

Type: boolean Default: false

Indicates whether gnu89 semantic should be used for inline functions.

Type: boolean Default: false

Indicates whether variables that CIL pulls out of their scope should be marked.

Type: object

Server mode

No Additional Properties

Type: boolean Default: false

Enable server mode

Type: enum (of string) Default: "stdio"

Server transport mode

Must be one of:

  • "stdio"
  • "unix"

Type: string Default: "goblint.sock"

The path to the UNIX socket

Type: boolean Default: false

Reparse source files before each analysis run

Type: object

Options for analyses

No Additional Properties

Type: array of string Default: ["expRelation", "base", "threadid", "threadflag", "threadreturn", "escape", "mutexEvents", "mutex", "access", "race", "mallocWrapper", "mhp", "assert"]

Lists of activated analyses.

No Additional Items

Each item of this array must be:

Type: string

Type: array of string Default: ["mutex", "malloc_null", "uninit", "expsplit", "activeSetjmp", "memLeak"]

List of path-sensitive analyses

No Additional Items

Each item of this array must be:

Type: string

Type: array of string Default: ["stack_loc", "stack_trace_set"]

List of context-insensitive analyses

No Additional Items

Each item of this array must be:

Type: string

Type: object

Setjmp/Longjmp analysis

No Additional Properties

Type: enum (of string) Default: "precise"

Split returns of setjmp

Must be one of:

  • "none"
  • "coarse"
  • "precise"

Type: object
No Additional Properties

Type: boolean Default: true

Use IntDomain.DefExc: definite value/exclusion set.

Type: boolean Default: false

Use IntDomain.Interval32: (Z.t * Z.t) option.

Type: boolean Default: false

Use IntDomain.IntervalSet: (Z.t * Z.t) list.

Type: boolean Default: false

Use IntDomain.Enums: Inclusion/Exclusion sets. Go to top on arithmetic operations (except for some easy cases, e.g. multiplication with 0). Joins on widen, i.e. precise integers as long as not derived from arithmetic expressions.

Type: boolean Default: false

Use IntDomain.Congruence: (c, m) option, meaning congruent to c modulo m

Type: enum (of string) Default: "never"

Use mutual refinement of integer domains. Either 'never', 'once' or 'fixpoint'. Counterintuitively, may reduce precision unless ana.int.intervalnarrowby_meet is also enabled.

Must be one of:

  • "never"
  • "once"
  • "fixpoint"

Type: boolean Default: false

Perform def_exc widening by joins. Gives threshold-widening like behavior, with thresholds given by the ranges of different integer types.

Type: boolean Default: false

Perform interval narrowing by meets. Avoids precision loss if intervals are refined by def_exc ranges, which are more precise than type range.

Type: boolean Default: false

Use constants appearing in program as threshold for widening

Type: enum (of string) Default: "all"

Which constants in the program should be considered as threshold constants (all/comparisons)

Must be one of:

  • "all"
  • "comparisons"

Type: object
No Additional Properties

Type: boolean Default: false

Use FloatDomain: (float * float) option.

Type: object
No Additional Properties

Type: boolean Default: true

Insert extra assertions into Promela code for debugging.

Type: object
No Additional Properties

Type: boolean Default: true

Should we try to save memory and speed up equality by hashconsing?

Type: boolean Default: true

First try physical equality (==) before {D,G,C}.equal (only done if hashcons is disabled since it basically does the same via its tags).

Type: object
No Additional Properties

Type: boolean Default: false

Try to intelligently select analyses based on analysed file

Type: array of enum (of string) Default: ["congruence", "singleThreaded", "specification", "mallocWrappers", "noRecursiveIntervals", "enums", "loopUnrollHeuristic", "arrayDomain", "octagon", "wideningThresholds", "memsafetySpecification", "termination", "tmpSpecialAnalysis"]

Lists of activated tuning options.

No Additional Items

Each item of this array must be:

Type: enum (of string)

Must be one of:

  • "congruence"
  • "singleThreaded"
  • "specification"
  • "mallocWrappers"
  • "noRecursiveIntervals"
  • "enums"
  • "loopUnrollHeuristic"
  • "forceLoopUnrollForFewLoops"
  • "arrayDomain"
  • "octagon"
  • "wideningThresholds"
  • "memsafetySpecification"
  • "termination"
  • "tmpSpecialAnalysis"

Type: object
No Additional Properties

Type: boolean Default: false

SV-COMP mode

Type: boolean Default: false

Handle SV-COMP __VERIFIER* functions

Type: string Default: ""

SV-COMP specification (path or string)

Type: boolean Default: false

Weakest precondition feasibility analysis for SV-COMP violations

Type: boolean Default: false

Array out of bounds check

Type: object
No Additional Properties

Type: object
No Additional Properties

Type: boolean Default: true

Non-address values in function contexts.

Type: boolean Default: true

Integer values in function contexts.

Type: boolean Default: true

Integer values of the Interval domain in function contexts.

Type: boolean Default: true

Integer values of the IntervalSet domain in function contexts.

Type: object
No Additional Properties

Type: enum (of string) Default: "flat"

Domain for string literals.

Must be one of:

  • "unit"
  • "flat"
  • "disjoint"

Type: object
No Additional Properties

Type: enum (of string) Default: "first"

When using the partitioning which expression should be used for partitioning ('first', 'last')

Must be one of:

  • "first"
  • "last"

Type: boolean Default: false

When using the partitioning should arrays be considered partitioned according to a constant if a var in the expression used for partitioning goes out of scope?

Type: boolean Default: false

When using the partitioning should the join of two arrays partitioned according to different expressions be partitioned as well if possible? If keep-expr is 'last' this behavior is enabled regardless of the flag value. Caution: Not always advantageous.

Type: object
No Additional Properties

Type: enum (of string) Default: "trivial"

The domain that should be used for arrays. When employing the partition array domain, make sure to enable the expRelation analysis as well. When employing the unrolling array domain, make sure to set the ana.base.arrays.unrolling-factor >0.

Must be one of:

  • "trivial"
  • "partitioned"
  • "unroll"

Type: integer Default: 0

Indicates how many values will the unrolled part of the unrolled array domain contain.

Type: object
No Additional Properties

Type: enum (of string) Default: "simple"

The domain that should be used for structs. simple/sets/keyed/combined-all/combined-sk

Must be one of:

  • "simple"
  • "sets"
  • "keyed"
  • "combined-all"
  • "combined-sk"

Type: object
No Additional Properties

Type: boolean Default: true

Whether the struct key should be picked going from first field to last.

Type: boolean Default: true

Whether integers should be avoided for key.

Type: boolean Default: true

Whether pointers should be preferred for key.

Type: enum (of string) Default: "protection-read"

Which privatization to use? none/mutex-oplus/mutex-meet/mutex-meet-tid/protection/protection-read/mine/mine-nothread/mine-W/mine-W-noinit/lock/write/write+lock

Must be one of:

  • "none"
  • "mutex-oplus"
  • "mutex-meet"
  • "protection"
  • "protection-read"
  • "mine"
  • "mine-nothread"
  • "mine-W"
  • "mine-W-noinit"
  • "lock"
  • "write"
  • "write+lock"
  • "mutex-meet-tid"

Type: object
No Additional Properties

Type: boolean Default: true

Exclude writes from threads that may not be started yet

Type: boolean Default: true

Exclude writes from threads that must have been joined

Type: object
No Additional Properties

Type: boolean Default: true

Generate base analysis invariants

Type: boolean Default: false

Whether to dump assertions about all blobs. Enabling this option may lead to unsound asserts.

Type: enum (of string) Default: "once"

How many times to unassume an invariant: once or until fixpoint (at least twice as expensive).

Must be one of:

  • "once"
  • "fixpoint"

Type: object
No Additional Properties

Type: boolean Default: true

Perform EvalInt queries on all subexpressions, not just the outermost expression.

Type: object
No Additional Properties

Type: array of string Default: ["kmalloc", "__kmalloc", "usb_alloc_urb", "__builtin_alloca", "kzalloc"]

Loads a list of known malloc wrapper functions.

No Additional Items

Each item of this array must be:

Type: string

Type: integer Default: 0

Number of unique memory addresses allocated for each malloc node.

Type: object
No Additional Properties

Type: boolean Default: false

Apply strengthening in join for extra precision with heterogeneous environments. Expensive!

Type: enum (of string) Default: "octagon"

Which domain should be used for the Apron analysis. Can be 'octagon', 'interval' or 'polyhedra'

Must be one of:

  • "octagon"
  • "interval"
  • "polyhedra"
  • "affeq"

Type: boolean Default: false

Use constants appearing in program as threshold for widening

Type: enum (of string) Default: "all"

Which constants in the programm should be considered as threshold constants

Must be one of:

  • "all"
  • "comparisons"

Type: object
No Additional Properties

Type: boolean Default: false

Only generate truly relational invariants by subtracting non-relational box invariants

Type: object
No Additional Properties

Type: boolean Default: true

Entire relation in function contexts.

Type: enum (of string) Default: "mutex-meet"

Which relation privatization to use? top/protection/protection-path/mutex-meet/mutex-meet-tid/mutex-meet-tid-cluster12/mutex-meet-tid-cluster2/mutex-meet-tid-cluster-max/mutex-meet-tid-cluster-power

Must be one of:

  • "top"
  • "protection"
  • "protection-path"
  • "mutex-meet"
  • "mutex-meet-tid"
  • "mutex-meet-tid-cluster12"
  • "mutex-meet-tid-cluster2"
  • "mutex-meet-tid-cluster-max"
  • "mutex-meet-tid-cluster-power"

Type: object
No Additional Properties

Type: boolean Default: true

Exclude writes from threads that may not be started yet

Type: boolean Default: true

Exclude writes from threads that must have been joined

Type: object
No Additional Properties

Type: boolean Default: false

Generate invariants with only one variable

Type: boolean Default: true

Keep local variables in invariants

Type: boolean Default: true

Keep global variables in invariants

Type: object
No Additional Properties

Type: boolean Default: false

Do widening on contexts. Keeps a map of function to call state; enter will then return the widened local state for recursive calls.

Type: object
No Additional Properties

Type: enum (of string) Default: "history"

Which domain should be used for the thread ids. Can be 'history' or 'plain'

Must be one of:

  • "history"
  • "plain"

Type: boolean Default: true

Whether the node at which a thread is created is part of its threadid

Type: array of string Default: []

Loads a list of known thread spawn (pthread_create) wrapper functions.

No Additional Items

Each item of this array must be:

Type: string

Type: integer Default: 0

Number of unique thread IDs allocated for each pthread_create node.

Type: object
No Additional Properties

Type: boolean Default: true

threadID analysis: Encountered create edges in context.

Type: object
No Additional Properties

Type: boolean Default: true

Consider memory free as racing write.

Type: boolean Default: true

Report races for thread-unsafe function calls.

Type: boolean Default: false

Collect and distribute direct (i.e. not in a field) accesses to arithmetic types.

Type: boolean Default: true

Report races for volatile variables.

Type: object
No Additional Properties

Type: boolean Default: true

Print information about lines of dead code.

Type: boolean Default: true

Print information about dead branches.

Type: boolean Default: true

Print information about dead (uncalled) functions.

Type: object
No Additional Properties

Type: boolean Default: true

Assume that all POSIX pthread functions succeed.

Type: boolean Default: true

Ignores any assigns in POSIX programs.

Type: object
No Additional Properties

Type: boolean Default: false

Delay widenings using widening tokens.

Type: object
No Additional Properties

Type: boolean Default: false

Check if invariant contradicts reached state before unassuming.

Type: object

Incremental analysis options

No Additional Properties

Type: boolean Default: false

Load incremental analysis results, in case any exist.

Type: string Default: "incremental_data"

Location where to load incremental analysis results from.

Type: boolean Default: false

Only reset IDs of unchanged objects in the AST. Do not reuse solver results. This option is mainly useful for benchmarking purposes.

Type: boolean Default: false

Store incremental analysis results.

Type: string Default: "incremental_data"

Location where to save incremental analysis results to.

Type: boolean Default: true

Reuse the stable set and selectively destabilize it (recommended).

Type: boolean Default: false

Reuse the wpoint set (not recommended). Reusing the wpoint will combine existing results at previous widening points.

Type: object
No Additional Properties

Type: boolean Default: false

Destabilize nodes in changed functions reluctantly

Type: enum (of string) Default: "ast"

Which comparison should be used for functions? 'ast'/'cfg' (cfg comparison also differentiates which nodes of a function have changed)

Must be one of:

  • "ast"
  • "cfg"

Type: boolean Default: true

If Goblint should try to detect renamed local variables, function parameters, functions and global variables

Type: object
No Additional Properties

Type: array of string Default: []

List of functions that are to be re-analayzed from scratch

No Additional Items

Each item of this array must be:

Type: object
No Additional Properties

Type: object
No Additional Properties

Type: boolean Default: false

Restart affected side-effected variables (transitively) to bot.

Type: enum (of string) Default: "all"

Side-effected variables to restart. Globals are non-function entry nodes. Write-only is a subset of globals.

Must be one of:

  • "all"
  • "global"
  • "write-only"

Type: integer Default: -1

Initial fuel for bounding transitive restarting, which uses one fuel each time when following side_fuel to restart. Zero fuel never restarts. Negative fuel doesn't bound (infinite fuel).

Type: boolean Default: false

Decrease fuel only when going to constraint system globals (not function entry nodes).

Type: array of string Default: []

List of globals variables and function definitions for which the analysis is to be restarted.

No Additional Items

Each item of this array must be:

Type: string

Type: boolean Default: true

Restart write-only variables to bot during postprocessing.

Type: object
No Additional Properties

Type: boolean Default: true

Use incremental postsolver

Type: boolean Default: false

Consider superstable set reached, may be faster but can lead to spurious warnings

Type: object

Options for library functions

No Additional Properties

Type: array of enum (of string) Default: ["c", "posix", "pthread", "gcc", "glibc", "linux-userspace", "goblint", "ncurses"]

List of activated libraries.

No Additional Items

Each item of this array must be:

Type: enum (of string)

Must be one of:

  • "c"
  • "posix"
  • "pthread"
  • "gcc"
  • "glibc"
  • "linux-userspace"
  • "linux-kernel"
  • "goblint"
  • "sv-comp"
  • "ncurses"
  • "zstd"
  • "pcre"
  • "zlib"
  • "liblzma"

Type: object

Options for semantics

No Additional Properties

Type: object
No Additional Properties

Type: boolean Default: true

Unknown function call spawns reachable functions

Type: boolean Default: true

Unknown function call calls reachable functions

Type: object
No Additional Properties

Type: boolean Default: true

Unknown function call invalidates all globals

Type: boolean Default: true

Unknown function call invalidates arguments passed to it

Type: object
No Additional Properties

Type: boolean Default: true

Unknown function call reads arguments passed to it

Type: object
No Additional Properties

Type: boolean Default: false

_builtinunreachable is assumed to be dead code

Type: object

Handling of C11 _Noreturn function specifier.

No Additional Properties

Type: boolean Default: false

For the purposes of detecting dead code, assume that functions marked noreturn don't return.

Type: object
No Additional Properties

Type: enum (of string) Default: "assume_top"

How to handle overflows of signed types. Values: 'assumetop' (default): Assume signed overflow results in a top value; 'assumenone': Assume program is free of signed overflows; 'assume_wraparound': Assume signed types wrap-around and two's complement representation of signed integers

Must be one of:

  • "assume_top"
  • "assume_none"
  • "assume_wraparound"

Type: object
No Additional Properties

Type: enum (of string) Default: "assume_none"

NULL pointer dereference handling. assumetop: assume it results in a top value, assumenone: assume it doesn't happen

Must be one of:

  • "assume_top"
  • "assume_none"

Type: object
No Additional Properties

Type: boolean Default: false

Consider the case where malloc or calloc fails.

Type: object
No Additional Properties

Type: boolean Default: false

Takes the possible failing of locking operations into account.

Type: object
No Additional Properties

Type: boolean Default: true

Standard assert refines state

Type: object

Options for transformations

No Additional Properties

Type: array of enum (of string) Default: []

Lists of activated transformations. Transformations happen after analyses.

No Additional Items

Each item of this array must be:

Type: enum (of string)

Must be one of:

  • "partial"
  • "expeval"
  • "assert"
  • "remove_dead_code"

Type: object
No Additional Properties

Type: string Default: ""

Path to the JSON file containing an expression evaluation query.

Type: string Default: "transformed.c"

Output filename for transformations that output a transformed file.

Type: object

Options for annotations

No Additional Properties

Type: object
No Additional Properties

Type: boolean Default: false

Enable manual annotation of functions with desired precision, i.e., the activated IntDomains.

Type: boolean Default: true

Enables handling of privatized globals, by setting the precision to the heighest value, when annotation.int.enabled is true.

Type: object
No Additional Properties

Type: boolean Default: false

Enable manual annotation of functions with desired precision, i.e., the activated FloatDomains.

Type: object

Each additional property must conform to the following schema

Type: array of enum (of string) Default: []
No Additional Items

Each item of this array must be:

Type: enum (of string)

Must be one of:

  • "base.no-non-ptr"
  • "base.non-ptr"
  • "base.no-int"
  • "base.int"
  • "base.no-interval"
  • "base.no-interval_set"
  • "base.interval"
  • "base.interval_set"
  • "relation.no-context"
  • "relation.context"
  • "no-widen"
  • "widen"

Type: object

Each additional property must conform to the following schema

Type: array of enum (of string) Default: []
No Additional Items

Each item of this array must be:

Type: enum (of string)

Must be one of:

  • "no-def_exc"
  • "def_exc"
  • "no-interval"
  • "interval"
  • "no-enums"
  • "enums"
  • "no-congruence"
  • "congruence"

Type: boolean Default: false

Enable manual annotation of arrays with desired domain

Type: boolean Default: false

Let relation track variables only if they have the attribute goblintrelationtrack

Type: object

Experimental features

No Additional Properties

Type: string Default: ""

File to dump privatization precision data to.

Type: boolean Default: false

Distribute global initializations to all global invariants for more consistent widening dynamics.

Type: object
No Additional Properties

Type: string Default: ""

File to dump relation precision data to.

Type: boolean Default: false

Output CFG to dot files

Type: boolean Default: false

Try to minimize the number of CFG nodes.

Type: boolean Default: false

Side-effecting of globals right after initialization.

Type: boolean Default: false

Considers offsets for region accesses.

Type: array of string Default: []

For types that have only one value.

No Additional Items

Each item of this array must be:

Type: string

Type: boolean Default: false

Use implicit forward propagation instead of the demand driven approach.

Type: boolean Default: true

volatile and extern keywords set variables permanently to top

Type: boolean Default: false

Ensures analyses that no threads are created.

Type: boolean Default: false

Set globals permanently to top.

Type: array of string Default: []

Global variables that should be handled flow-sensitively when using earlyglobs.

No Additional Items

Each item of this array must be:

Type: array of string Default: []

Global variables that should not be invalidated. This assures the analysis that such globals are only modified through known code

No Additional Items

Each item of this array must be:

Type: string Default: ""

Location of the g2html.jar file. If empty, then goblint executable directory is used.

Type: array of string Default: []

List of functions that must be analyzed as unknown extern functions

No Additional Items

Each item of this array must be:

Type: boolean Default: false

Overwrite narrow a b = a

Type: boolean Default: false

Only keep values for basic blocks instead of for every node. Should take longer but need less space.

Type: boolean Default: true

Only generate one 'a[any_index] = x' for all assignments a[...] = x for a global array a[n].

Type: enum (of string) Default: "64bit"

Architecture for analysis, currently for witness

Must be one of:

  • "64bit"
  • "32bit"

Type: string Default: "/usr/bin/gcc"

Location of gcc. Used to combine source files with cilly. Change to gcc-9 or another version on OS X (with gcc being clang by default cilly will fail otherwise).

Type: string Default: ""

Path to C preprocessor (cpp) to use. If empty, then automatically searched.

Type: integer Default: 0

Sets the unrolling factor for the loopUnrollingVisitor.

Type: boolean Default: true

Hide standard extern globals (e.g. stdout) from cluttering local states.

Type: boolean Default: false

Construct abstract reachability graph (ARG).

Type: boolean Default: false

Output ARG as dot file.

Type: object

Debugging options

No Additional Properties

Type: boolean Default: false

Prints some status information.

Type: object
No Additional Properties

Type: boolean Default: false

Collect and output timing information.

Type: string Default: ""

Filename for Trace Event Format (TEF) output. Disabled if empty.

Type: object
No Additional Properties

Type: boolean Default: false

Also print the context of solver variables.

Type: string Default: ""

Dumps the results to the given path

Type: string Default: ""

Where to dump cil output

Type: string Default: "0"

Stop solver after this time. 0 means no timeout. Supports optional units h, m, s. E.g. 1m6s = 01m06s = 66; 6h = 66060.

Type: integer Default: 10

Interval in seconds to print statistics while solving. Set to 0 to deactivate.

Type: string Default: "sigusr1"

Signal to print statistics while solving. Possible values: sigint (Ctrl+C), sigtstp (Ctrl+Z), sigquit (Ctrl+), sigusr1, sigusr2, sigalrm, sigprof etc. (see signalofstring in gobSys.ml).

Type: string Default: "sigusr2"

Signal to print a raw backtrace on stderr. Possible values: sigint (Ctrl+C), sigtstp (Ctrl+Z), sigquit (Ctrl+), sigusr1, sigusr2, sigalrm, sigprof etc. (see signalofstring in gobSys.ml).

Type: boolean Default: false

Used for debugging. Prints out a symbol on solving a rhs.

Type: boolean Default: false

Print the widening points after solving (does not include the removed wpoints during solving by the slr solvers). Currently only implemented in: slr*, td3.

Type: object
No Additional Properties

Type: boolean Default: false

Turn slicer on or off.

Type: integer Default: 10

How deep function stack do we analyze.

Type: object
No Additional Properties

Type: integer Default: 0

Limit for number of widenings per node (0 = no limit).

Type: boolean Default: false

Keep warnings for different contexts apart (currently only done for asserts).

Type: boolean Default: false

Only output warnings for assertions that have an unexpected result (no comment, comment FAIL, comment UNKNOWN)

Type: object
No Additional Properties

Type: boolean Default: false

Test domain properties

Type: boolean Default: false

Output dot files for CIL CFGs.

Type: object
No Additional Properties

Type: boolean Default: false

Add loop SCC clusters to CFG .dot output.

Type: object
No Additional Properties

Type: boolean Default: false

Compare GlobConstrSys in compare_runs

Type: boolean Default: true

Compare EqConstrSys in compare_runs

Type: boolean Default: false

Compare globals in compare_runs

Type: boolean Default: false

Compare nodes (with joined contexts) in compare_runs

Type: boolean Default: false

Print differences

Type: boolean Default: false

Should the analysis print information on the encountered TIDs

Type: boolean Default: false

Should the analysis print information on which globals are protected by which mutex?

Type: boolean Default: false

Should the analysis call Check.checkFile after creating the CFG (helpful to verify that transformations respect CIL's invariants.

Type: object

Filtering of warnings

No Additional Properties

Type: boolean Default: true

Assert messages

Type: boolean Default: true

undefined behavior warnings

Type: boolean Default: true

function call warnings

Type: boolean Default: true

integer (Overflow, Divbyzero) warnings

Type: boolean Default: true

float warnings

Type: boolean Default: true

Cast (Type_mismatch(bug) warnings

Type: boolean Default: true

Race warnings

Type: boolean Default: true

Deadlock warnings

Type: boolean Default: true

Dead code warnings

Type: boolean Default: true

Analyzer messages

Type: boolean Default: true

Unsoundness messages

Type: boolean Default: true

Imprecision messages

Type: boolean Default: true

Witness messages

Type: boolean Default: true

Program messages

Type: boolean Default: true

Non-Termination warning

Type: boolean Default: true

Unknown (of string) warnings

Type: boolean Default: true

Error severity messages

Type: boolean Default: true

Warning severity messages

Type: boolean Default: true

Info severity messages

Type: boolean Default: false

Debug severity messages

Type: boolean Default: true

Success severity messages

Type: boolean Default: false

Quote code in message output.

Type: integer Default: 0

Races with confidence at least threshold are warnings, lower are infos.

Type: boolean Default: false

Output messages in deterministic order. Useful for cram testing.

Type: object
No Additional Properties

Type: boolean Default: false

Enable memory leak warnings only for violations of the SV-COMP "valid-memcleanup" category

Type: boolean Default: false

Enable memory leak warnings only for violations of the SV-COMP "valid-memtrack" category

Type: object
No Additional Properties

Type: object
No Additional Properties

Type: boolean Default: true

Should the td3 solver use the phased/terminating strategy?

Type: enum (of string) Default: "sides"

When to widen in side. never: never widen, always: always widen, sides: widen if there are multiple side-effects from the same var resulting in a new value, cycle: widen if a called or a start var get destabilized, unstablecalled: widen if any called var gets destabilized, unstableself: widen if side-effected var gets destabilized, sides-pp: widen if there are multiple side-effects from the same program point resulting in a new value, sides-local: Widen with contributions from variables from which multiple side-effects leading to a new value originate.

Must be one of:

  • "never"
  • "always"
  • "sides"
  • "cycle"
  • "unstable_called"
  • "unstable_self"
  • "sides-pp"
  • "sides-local"

Type: boolean Default: false

Should the td3 solver only keep values at widening points?

Type: boolean Default: true

Should the td3-space solver cache values?

Type: boolean Default: true

Should the td3-space solver restore values for non-widening-points? Not needed for generating warnings, but needed for inspecting output!

Type: boolean Default: true

Reuse value when switching from widening to narrowing phase. Avoids one unnecessary re-evaluation.

Type: boolean Default: true

Remove widening points after narrowing phase. Enables a form of local restarting which increases precision of nested loops.

Type: boolean Default: false

Skip evaluation of RHS if all dependencies are unchanged - INCOMPATIBLE WITH RESTARTING

Type: object
No Additional Properties

Type: object
No Additional Properties

Type: boolean Default: false

Restart wpoint to bot when (re-)detected. Allows incremental to avoid reusing and republishing imprecise local values due to globals (which get restarted).

Type: boolean Default: false

Restart wpoint only on first detection. Useful for incremental loading.

Type: boolean Default: false

Check TD3 data structure invariants

Type: object
No Additional Properties

Type: integer Default: 1

How many times SLR4 is allowed to switch from restarting iteration to increasing iteration.

Type: object
No Additional Properties

Type: object
No Additional Properties

Type: boolean Default: false

Output GraphML witness

Type: string Default: "witness.graphml"

GraphML witness output path

Type: enum (of string) Default: "node"

Which witness node IDs to use? node/enumerate

Must be one of:

  • "node"
  • "enumerate"

Type: boolean Default: false

Try to minimize the witness

Type: boolean Default: false

Try to undo CIL control flow transformations in witness

Type: boolean Default: true

Construct stacktrace-based witness nodes

Type: boolean Default: true

Output witness for unknown result

Type: object
No Additional Properties

Type: boolean Default: true

Emit invariants at loop heads

Type: boolean Default: true

Emit invariants after mutex locking

Type: boolean Default: true

Emit invariants at all other locations

Type: boolean Default: true

Split conjunctive invariant to multiple invariants

Type: boolean Default: false

Only emit invariants for locally accessed variables

Type: boolean Default: true

Whether to dump assertions about all local variables or limitting it to modified ones where possible.

Type: boolean Default: true

Emit exact invariants. They are useless for unassuming.

Type: boolean Default: false

Emit inexact invariants matching type bounds.

Type: array of string Default: ["tmp\\(___[0-9]+\\)?", "cond", "RETURN"]

OCaml Str regexes for variables to exclude from invariants.

No Additional Items

Each item of this array must be:

Type: boolean Default: false

Emit non-standard Goblint-specific invariants. Currently array invariants with all_index offsets.

Type: object
No Additional Properties

Type: boolean Default: false

Output YAML witness

Type: enum (of string) Default: "0.1"

YAML witness format version

Must be one of:

  • "0.1"
  • "2.0"

Type: array of enum (of string) Default: ["location_invariant", "loop_invariant", "flow_insensitive_invariant", "loop_invariant_certificate", "precondition_loop_invariant_certificate", "invariant_set"]

YAML witness entry types to output/input.

No Additional Items

Each item of this array must be:

Type: enum (of string)

Must be one of:

  • "location_invariant"
  • "loop_invariant"
  • "flow_insensitive_invariant"
  • "precondition_loop_invariant"
  • "loop_invariant_certificate"
  • "precondition_loop_invariant_certificate"
  • "invariant_set"

Type: array of enum (of string) Default: ["location_invariant", "loop_invariant"]

YAML witness invariant types to output/input.

No Additional Items

Each item of this array must be:

Type: enum (of string)

Must be one of:

  • "location_invariant"
  • "loop_invariant"

Type: string Default: "witness.yml"

YAML witness output path

Type: string Default: ""

YAML witness input path

Type: boolean Default: false

Type: string Default: ""

YAML witness input path

Type: string Default: ""

YAML witness certificate output path