Concuerror's options module
The _option() functions listed on this page all correspond to
valid configuration options.
For general documentation go to the Overview page.
You can also access documentation about options using the help option. You can get more help with concuerror --help help. In the future even more
help might be added.
If you invoke Concuerror without an argument, --help is assumed
as an argument.
The type of each options' argument is listed at the option's
specification below. When specifying integer() or boolean() options in the command line you can omit true or 1
as values.
--module
to pass options to Concuerror:
-concuerror_options(Options)-concuerror_options_forced(Options)This information is also available via concuerror --help attributes
Each option is associated with one or more
keywords. These can be used with help
to find related options.
If you invoke help without an argument,
you will only see options with the keyword basic. To see all
options use --help all.
Some options can be specified multiple times, each time with a different argument. For those that don't the last value is kept (this makes invocation via command line easier). Concuerror reports any overrides.
By default, Concuerror prints diagnostic messages in the standard
error stream. Such messages are also printed at the bottom of the
Report File after the analysis is completed. You can
find explanation of the classification of these messages in the
verbosity option.
By default, Concuerror also prints progress information in the
standard error stream. You can find what is the meaning of each field
by running concuerror --help progress.
The printout can be reduced or disabled (see verbosity option). Diagnostic messages are
always printed in the Report File.
By default, Concuerror prints analysis findings in a report file.
This file contains:
An error report corresponds to an interleaving that lead to errors and contains at least the following sections:
If the program produce any output, this is also included.
By default, Concuerror reports the following errors:If the show_races option is used,
the pairs of racing events that justify the exploration of new
interleavings are also shown. These are shown for all
interleavings, not only the ones with errors.
log_all option is used,
all interleavings will be shown, not only the ones with errors.
bound() = infinity | non_neg_integer()
If you want to pass infinity as option from the command-line, use -1.
dpor() = none | optimal | persistent | source
See dpor_option/0 for the meaning of values.
abstract datatype: option_spec()
This is used internally to specify option components and is irrelevant for a user of Concuerror.
options() = proplists:proplist()
Concuerror's configuration options are given as a proplist().
See the list of functions in this module for valid configuration
options.
scheduling() = oldest | newest | round_robin
See scheduling_option/0 for the meaning of values.
scheduling_bound_type() = bpor | delay | none | ubpor
See scheduling_bound_option/0 for the meaning of values.
| after_timeout_option/0 | Threshold for treating timeouts as infinity. |
| assertions_only_option/0 | Report only abnormal exits due to ?asserts |
| assume_racing_option/0 | Do not crash if race info is missing. |
| depth_bound_option/0 | Maximum number of events. |
| disable_sleep_sets_option/0 | Disable sleep sets. |
| dpor_option/0 | DPOR technique. |
| exclude_module_option/0 | * Modules that should not be instrumented. |
| file_option/0 | Load specified file (.beam or .erl). |
| first_process_errors_only_option/0 | Report only errors that involve the first process. |
| graph_option/0 | Produce a DOT graph in the specified file. |
| help_option/0 | Display help (use -h h for more help). |
| ignore_error_option/0 | Error categories that should be ignored. |
| instant_delivery_option/0 | Make messages and signals arrive instantly. |
| interleaving_bound_option/0 | Maximum number of interleavings. |
| keep_going_option/0 | Keep running after an error is found. |
| log_all_option/0 | Show all interleavings in log. |
| module_option/0 | Module containing the test function. |
| no_output_option/0 | Do not produce an analysis report. |
| non_racing_system_option/0 | No races due to 'system' messages. |
| observers_option/0 | Synonym for --use_receive_patterns |
| optimal_option/0 | Synonym for --dpor optimal (true) | source (false) |
| options/0 | |
| output_option/0 | Filename to use for the analysis report. |
| pa_option/0 | Add directory to Erlang's code path (front). |
| parse_cl/1 | Converts command-line arguments to a proplist using getopt. |
| print_depth_option/0 | Print depth for log/graph. |
| pz_option/0 | Add directory to Erlang's code path (rear). |
| quiet_option/0 | Synonym for --verbosity 0 |
| scheduling_bound_option/0 | Scheduling bound value. |
| scheduling_bound_type_option/0 | * Schedule bounding technique. |
| scheduling_option/0 | Scheduling order. |
| show_races_option/0 | Show races in log/graph. |
| strict_scheduling_option/0 | Force preemptions when scheduling. |
| symbolic_names_option/0 | Use symbolic process names. |
| test_option/0 | Name of test function. |
| timeout_option/0 | How long to wait for an event (>= 500ms). |
| treat_as_normal_option/0 | Exit reason treated as normal (i.e., not reported as an error). |
| use_receive_patterns_option/0 | Use receive patterns for racing sends. |
| verbosity_option/0 | Verbosity level (0-7). |
| version_option/0 | Display version information. |
after_timeout_option() -> option_spec()
Threshold for treating timeouts as infinity
--after_timeout Value or {after_timeout, Value}-abound()infinityafter clauses with timeouts higher or equal to the specified value cannot be triggered. Concuerror treats all lower values as triggerable
assertions_only_option() -> option_spec()
Report only abnormal exits due to ?asserts
--assertions_only Value or {assertions_only, Value}boolean()false{{assert*, _}, _} are considered errors. Such exit reasons are generated e.g. by the macros defined in the stdlib/include/assert.hrl header file.
assume_racing_option() -> option_spec()
Do not crash if race info is missing
--assume_racing Value or {assume_racing, Value}boolean()truedepth_bound_option() -> option_spec()
Maximum number of events
--depth_bound Value or {depth_bound, Value}-dinteger()500disable_sleep_sets_option() -> option_spec()
Disable sleep sets
--disable_sleep_sets Value or {disable_sleep_sets, Value}boolean()false--dpor none.
dpor_option() -> option_spec()
DPOR technique
--dpor Value or {dpor, Value}dpor()optimalnone: Disable DPOR. Not recommended.
- optimal: Using source sets and wakeup trees.
- source: Using source sets only. Use this if the rate of
exploration is too slow. Use optimal if a lot of
interleavings are reported as sleep-set blocked.
- persistent: Using persistent sets. Not recommended.
exclude_module_option() -> option_spec()
* Modules that should not be instrumented
--exclude_module Value or {exclude_module, Value}-xatom()file_option() -> option_spec()
Load specified file (.beam or .erl)
--file Value or {file, Value}-fstring()Explicitly load the specified file(s) (.beam or .erl). Source (.erl) files should not require any command line compile options. Use a .beam file (preferably compiled with +debug_info) if special compilation is needed.
first_process_errors_only_option() -> option_spec()
Report only errors that involve the first process
--first_process_errors_only Value or {first_process_errors_only, Value}boolean()falsegraph_option() -> option_spec()
Produce a DOT graph in the specified file
--graph Value or {graph, Value}-gstring()dot -Tsvg -o graph.svg graph
help_option() -> option_spec()
Display help (use -h h for more help)
--help Value or {help, Value}-hatom()Without an argument, prints info for basic options.
With all as argument, prints info for all options.
With attributes as argument, prints info about passing options using module attributes.
With progress as argument, prints info about what the items in the progress info mean.
With an option name as argument, prints more help for that option.
Options have keywords associated with them (shown in their help). With a keyword as argument, prints a list of all the options that are associated with the keyword.
If a boolean or integer argument is omitted,true or 1 is the implied value.
ignore_error_option() -> option_spec()
Error categories that should be ignored
--ignore_error Value or {ignore_error, Value}atom()abnormal_exit: processes exiting with any abnormal reason; check -h treat_as_normal and -h assertions_only for more refined control
- abnormal_halt: processes executing erlang:halt/1,2 with status /= 0
- deadlock: processes waiting at a receive statement
- depth_bound: reaching the depth bound; check -h depth_bound
instant_delivery_option() -> option_spec()
Make messages and signals arrive instantly
--instant_delivery Value or {instant_delivery, Value}boolean()trueinterleaving_bound_option() -> option_spec()
Maximum number of interleavings
--interleaving_bound Value or {interleaving_bound, Value}-ibound()infinitykeep_going_option() -> option_spec()
Keep running after an error is found
--keep_going Value or {keep_going, Value}-kboolean()falseConcuerror stops by default when the first error is found. Enable this option to keep looking for more errors.
It is usually recommended to modify the test, or use the--ignore_error / --treat_as_normal options, instead of this one.
log_all_option() -> option_spec()
Show all interleavings in log
--log_all Value or {log_all, Value}boolean()falsemodule_option() -> option_spec()
Module containing the test function
--module Value or {module, Value}-matom()Concuerror begins exploration from a test function located in the module specified by this option.
There is no need to specify modules used in the test if they are in Erlang's code path. Otherwise use--file, --pa or --pz.
no_output_option() -> option_spec()
Do not produce an analysis report
--no_output Value or {no_output, Value}boolean()non_racing_system_option() -> option_spec()
No races due to 'system' messages
--non_racing_system Value or {non_racing_system, Value}atom()observers_option() -> option_spec()
Synonym for --use_receive_patterns
--observers Value or {observers, Value}boolean()See also: use_receive_patterns_option/0.
optimal_option() -> option_spec()
Synonym for --dpor optimal (true) | source (false)
--optimal Value or {optimal, Value}boolean()See also: dpor_option/0.
options() -> [option_spec()]
output_option() -> option_spec()
Filename to use for the analysis report
--output Value or {output, Value}-ostring()"concuerror_report.txt"pa_option() -> option_spec()
Add directory to Erlang's code path (front)
--pa Value or {pa, Value}string()erl -pa.
parse_cl(CommandLineArgs::[string()]) -> {run, options()} | {return, concuerror:analysis_result()}
Converts command-line arguments to a proplist using getopt
This function also augments the interface of getopt, allowingprint_depth_option() -> option_spec()
Print depth for log/graph
--print_depth Value or {print_depth, Value}integer()20~W and ~P argument of io:format/3). If you want more info about a particular piece of data in an interleaving, consider using erlang:display/1 and checking the standard output section in the error reports of the analysis report instead.
pz_option() -> option_spec()
Add directory to Erlang's code path (rear)
--pz Value or {pz, Value}string()erl -pz.
quiet_option() -> option_spec()
Synonym for --verbosity 0
--quiet Value or {quiet, Value}-qboolean()See also: verbosity_option/0.
scheduling_bound_option() -> option_spec()
Scheduling bound value
--scheduling_bound Value or {scheduling_bound, Value}-binteger()--scheduling_bound_type can be violated.
scheduling_bound_type_option() -> option_spec()
* Schedule bounding technique
--scheduling_bound_type Value or {scheduling_bound_type, Value}-cscheduling_bound_type()noneEnables scheduling rules that prevent interleavings from being explored. The available options are:
- none: no bounding
- bpor: how many times per interleaving the scheduler is allowed
to preempt a process.
* Not compatible with Optimal DPOR.
- delay: how many times per interleaving the scheduler is allowed
to skip the process chosen by default in order to schedule
others.
- ubpor: same as bpor but without conservative backtrack points.
* Experimental, unsound, not compatible with Optimal DPOR.
scheduling_option() -> option_spec()
Scheduling order
--scheduling Value or {scheduling, Value}scheduling()round_robinoldest, newest and round_robin, with the expected semantics.
show_races_option() -> option_spec()
Show races in log/graph
--show_races Value or {show_races, Value}boolean()falsestrict_scheduling_option() -> option_spec()
Force preemptions when scheduling
--strict_scheduling Value or {strict_scheduling, Value}boolean()falsesymbolic_names_option() -> option_spec()
Use symbolic process names
--symbolic_names Value or {symbolic_names, Value}-sboolean()trueReplace PIDs with symbolic names in outputs. The format used is:
<[symbolic name]/[last registered name]>
where [symbolic name] is:
P, for the first process and
- [parent symbolic name].[ordinal], for any other process, where [ordinal] shows the order of spawning (e.g. <P.2> is the second process spawned by <P>).
The [last registered name] part is shown only if applicable.
test_option() -> option_spec()
Name of test function
--test Value or {test, Value}-tatom()test--module. Concuerror will start the test by spawning a process that calls this function.
timeout_option() -> option_spec()
How long to wait for an event (>= 500ms)
--timeout Value or {timeout, Value}bound()5000infinity will make Concuerror wait indefinitely. Otherwise must be >= 500.
treat_as_normal_option() -> option_spec()
Exit reason treated as normal (i.e., not reported as an error)
--treat_as_normal Value or {treat_as_normal, Value}atom()shutdown is usually a normal exit reason in this case).
use_receive_patterns_option() -> option_spec()
Use receive patterns for racing sends
--use_receive_patterns Value or {use_receive_patterns, Value}boolean()trueverbosity_option() -> option_spec()
Verbosity level (0-7)
--verbosity Value or {verbosity, Value}-vinteger()4The value of verbosity determines what is shown on standard error. Messages up to info are always also shown in the output file. The available levels are the following:
0 (quiet) Nothing is printed (equivalent to--quiet)
1 (error) Critical, resulting in early termination
2 (warn) Non-critical, notifying about weak support for a feature or
the use of an option that alters the output
3 (tip) Notifying of a suggested refactoring or option to make
testing more efficient
4 (info) Normal operation messages, can be ignored
5 (time) Timing messages
6 (debug) Used only during debugging
7 (trace) Everything else
version_option() -> option_spec()
Display version information
--version Value or {version, Value}undefined()Generated by EDoc