* * Goto-Instrument 6.11.0 (cbmc-6.11.0-dirty) 64-bit * *
* * Copyright (C) 2008-2013 * *
* * Daniel Kroening * *
* * kroening@kroening.com * *
Usage: Purpose:
goto-instrument [-?] [-h] [--help] show this help
goto-instrument --version show version and exit
goto-instrument [options] in [out] perform analysis or instrumentation
Dump Source:
--dump-c generate C source
--dump-c-type-header m generate a C header for types local in m
--dump-cpp generate C++ source
--no-system-headers generate C source expanding libc includes
--use-all-headers generate C source with all includes
--harness include input generator in output
--horn print program as constrained horn clauses
Diagnosis:
--show-properties show the properties, but don't run analysis
--document-properties-html generate HTML property documentation
--document-properties-latex generate LaTeX property documentation
--show-symbol-table show loaded symbol table
--list-symbols list symbols with type information
--show-goto-functions show loaded goto program
--list-goto-functions list loaded goto functions
--count-eloc count effective lines of code
--list-eloc list full path names of lines containing code
--print-global-state-size count the total number of bits of global objects
--print-path-lengths print statistics about control-flow graph paths
--show-locations show all source locations
--dot generate CFG graph in DOT format
--print-internal-representation show verbose internal representation of the
program
--list-undefined-functions list functions without body
--list-calls-args list all function calls with their arguments
--call-graph show graph of function calls
--reachable-call-graph show graph of function calls potentially
reachable from main function
--show-class-hierarchy show the class hierarchy
--validate-goto-model enable additional well-formedness checks on the
goto program
--validate-ssa-equation enable additional well-formedness checks on the
SSA representation
--validate-goto-binary check the well-formedness of the passed in goto
binary and then exit
--interpreter do concrete execution
Data-flow analyses:
--show-struct-alignment show struct members that might be concurrently
accessed
--show-threaded show instructions that may be executed by more
than one thread
--show-local-safe-pointers show pointer expressions that are trivially
dominated by a not-null check
--show-safe-dereferences show pointer expressions that are trivially
dominated by a not-null check *and* used as a
dereference operand
--show-value-sets show points-to information (using value sets)
--show-global-may-alias show may-alias information over globals
--show-local-bitvector-analysis show procedure-local pointer analysis
--escape-analysis perform escape analysis
--show-escape-analysis show results of escape analysis
--custom-bitvector-analysis perform configurable bitvector analysis
--show-custom-bitvector-analysis show results of configurable bitvector
analysis
--interval-analysis perform interval analysis
--show-intervals show results of interval analysis
--show-uninitialized show maybe-uninitialized variables
--show-points-to show points-to information
--show-rw-set show read-write sets
--show-call-sequences show function call sequences
--show-reaching-definitions show reaching definitions
--show-dependence-graph show program-dependence graph
--show-sese-regions show single-entry-single-exit regions
Safety checks:
--no-assertions ignore user assertions
--no-standard-checks disable default checks (more information in
manpage)
--bounds-check enable array bounds checks (default on)
--no-bounds-check disable array bounds checks
--pointer-check enable pointer checks (default on)
--no-pointer-check disable pointer checks
--memory-leak-check enable memory leak checks
--memory-cleanup-check enable memory cleanup checks
--div-by-zero-check enable division by zero checks on integers
(default on)
--float-div-by-zero-check enable division by zero checks on floating-point
numbers (default off)
--no-div-by-zero-check disable division by zero checks
--signed-overflow-check enable signed arithmetic over- and underflow
checks (default on)
--no-signed-overflow-check disable signed arithmetic over- and underflow
checks
--unsigned-overflow-check enable arithmetic over- and underflow checks
--pointer-overflow-check enable pointer arithmetic over- and underflow
checks
--conversion-check check whether values can be represented after
type cast
--undefined-shift-check check shift greater than bit-width (default on)
--no-undefined-shift-check disable check for shift greater than bit-width
--float-overflow-check check floating-point for +/-Inf
--nan-check check floating-point for NaN
--enum-range-check checks that all enum type expressions have values
in the enum range
--pointer-primitive-check checks that all pointers in pointer primitives
are valid or null (default on)
--no-pointer-primitive-check disable checks that all pointers in pointer
primitives are valid or null
--retain-trivial-checks include checks that are trivially true
--error-label label check that label label is unreachable
--no-built-in-assertions ignore assertions in built-in library
--no-assertions ignore user assertions
--no-assumptions ignore user assumptions
--assert-to-assume convert user assertions to assumptions
--uninitialized-check add checks for uninitialized locals (experimental)
--stack-depth n add check that call stack size of non-inlined
functions never exceeds n
--race-check add floating-point data race checks
Semantic transformations:
--nondet-volatile makes reads from volatile variables
non-deterministic
--nondet-volatile-variable variable makes reads from given volatile variable
non-deterministic
--nondet-volatile-model variable:model models reads from given volatile
variable by a call to the given model
--isr function instruments an interrupt service routine
--mmio instruments memory-mapped I/O
--nondet-static add nondeterministic initialization of variables
with static lifetime
--nondet-static-exclude e same as nondet-static except for the variable e
(use multiple times if required)
--nondet-static-matching r add nondeterministic initialization of variables
with static lifetime matching regex r
--function-enter f, --function-exit f, --branch f instruments a call to f at
the beginning, the exit, or a branch point,
respectively
--splice-call caller,callee prepends a call to callee in the body of caller
--check-call-sequence seq instruments checks to assert that all call
sequences match seq
--undefined-function-is-assume-false convert each call to an undefined
function to assume(false)
--insert-final-assert-false function generate assert(false) at end of
function function
--generate-function-body regex generate bodies for functions matching regex
that do not already have bodies
--generate-havocing-body