Skip to content

Commit 9cf345d

Browse files
authored
Merge pull request #404 from gustavo-grieco/gustavo-grieco-patch-1
Update echidna configuration.md to include symbolic execution documentation
2 parents 442291f + f35035e commit 9cf345d

File tree

1 file changed

+46
-24
lines changed

1 file changed

+46
-24
lines changed

program-analysis/echidna/configuration.md

Lines changed: 46 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -375,49 +375,54 @@ Run events server on the given port.
375375

376376
### `symExec`
377377

378-
| Type | Default | Available in |
379-
| ---- | ------- | ------------ |
380-
| Bool | `false` | 2.2.4+ |
378+
| Type | Default | Available in | CLI equivalent |
379+
| ---- | ------- | ------------ | -------------- |
380+
| Bool | `false` | 2.2.4+ | `--sym-exec` |
381381

382382
Whether to add an additional symbolic execution worker.
383383

384-
### `symExecConcolic`
385-
386-
| Type | Default | Available in |
387-
| ---- | ------- | ------------ |
388-
| Bool | `true` | 2.2.4+ |
389-
390-
Whether symbolic execution will be concolic (vs full symbolic execution). Only
391-
relevant if `symExec` is true.
392-
393384
### `symExecNSolvers`
394385

395-
| Type | Default | Available in |
396-
| ---- | ------- | ------------ |
397-
| Int | `1` | 2.2.4+ |
386+
| Type | Default | Available in | CLI equivalent |
387+
| ---- | ------- | ------------ | ---------------------- |
388+
| Int | `1` | 2.2.4+ | `--sym-exec-n-solvers` |
398389

399390
Number of SMT solvers used in symbolic execution. While there is a single
400391
symExec worker, N threads may be used to solve SMT queries. Only relevant if
401392
`symExec` is true.
402393

403394
### `symExecTimeout`
404395

396+
| Type | Default | Available in | CLI equivalent |
397+
| ---- | ------- | ------------ | -------------------- |
398+
| Int | `30` | 2.2.4+ | `--sym-exec-timeout` |
399+
400+
Timeout for symbolic execution SMT solver per formula to solve. Only relevant if `symExec` is true.
401+
402+
### `symExecSMTSolver`
403+
404+
| Type | Default | Available in |
405+
| ------ | ---------- | ------------ |
406+
| String | `bitwuzla` | 2.2.8+ |
407+
408+
The SMT solver used when doing symbolic execution. Valid values are: "cvc5", "z3" and "bitwuzla". Only relevant if `symExec` is true.
409+
410+
### `symExecMaxExplore`
411+
405412
| Type | Default | Available in |
406413
| ---- | ------- | ------------ |
407-
| Int | `30` | 2.2.4+ |
414+
| Int | `10` | 2.2.8+ |
408415

409-
Timeout for symbolic execution SMT solver. Only relevant if `symExec` is true.
410-
When the SMT solver used is Z3, this timeout applies per query, and is not
411-
global.
416+
Number of states in exponents of 2 (i.e. 2^10 states) that we may explore using symbolic execution. Only relevant if
417+
`symExec` is true.
412418

413419
### `symExecMaxIters`
414420

415421
| Type | Default | Available in |
416422
| ---- | ------- | ------------ |
417-
| Int | `10` | 2.2.4+ |
423+
| Int | `5` | 2.2.4+ |
418424

419-
Number of times we may revisit a particular branching point. Only relevant if
420-
`symExec` is true and `symExecConcolic` is false.
425+
Number of times we may revisit a particular branching point. Only relevant if `symExec` is true.
421426

422427
### `symExecAskSMTIters`
423428

@@ -426,8 +431,17 @@ Number of times we may revisit a particular branching point. Only relevant if
426431
| Int | `1` | 2.2.4+ |
427432

428433
Number of times we may revisit a particular branching point before we consult
429-
the smt solver to check reachability. Only relevant if `symExec` is true and
430-
`symExecConcolic` is false.
434+
the smt solver to check reachability. Only relevant if `symExec` is true.
435+
436+
### `symExecTargets`
437+
438+
| Type | Default | Available in | CLI Equivalent |
439+
| -------- | ------- | ------------ | ------------------- |
440+
| [String] | `null` | 2.2.4+ | `--sym-exec-target` |
441+
442+
List of whitelisted functions for using symbolic exploration. When set to null,
443+
all functions are eligible. If used in the CLI, it will only allow a single target.
444+
Only relevant if `symExec` is true.
431445

432446
### `disableSlither`
433447

@@ -497,3 +511,11 @@ introduction of on-chain fuzzing in Echidna, it had become deprecated, and was l
497511

498512
Enabled the collection of worst-case gas usage. The information was stored as
499513
part of the corpus on the `gas_info` field. This functionality was experimental.
514+
515+
### `symExecConcolic`
516+
517+
| Type | Default | Available in |
518+
| ---- | ------- | -------------- |
519+
| Bool | `true` | \* until 2.2.7 |
520+
521+
This option controlled whether symbolic execution will be concolic (vs full symbolic execution). It has been removed from the current version of Echidna.

0 commit comments

Comments
 (0)