ROSE 0.11.145.147
ModelChecker/Settings.h
1#ifndef ROSE_BinaryAnalysis_ModelChecker_Settings_H
2#define ROSE_BinaryAnalysis_ModelChecker_Settings_H
3#include <featureTests.h>
4#ifdef ROSE_ENABLE_MODEL_CHECKER
5
6#include <Rose/BinaryAnalysis/ModelChecker/BasicTypes.h>
7#include <Rose/Constants.h>
8
9#include <Sawyer/CommandLine.h>
10
11namespace Rose {
12namespace BinaryAnalysis {
13namespace ModelChecker {
14
19class Settings {
20public:
21 using Ptr = SettingsPtr;
22public:
23 bool showInitialStates = false;
24 bool showIntermediateStates = false;
25 bool showFinalStates = false;
26 bool showAssertions = false;
27 bool ignoreSemanticFailures = false;
28 size_t kSteps = 1000;
29 size_t kNodes = UNLIMITED;
31 bool rejectUnknownInsns = true;
32 Sawyer::Optional<uint64_t> solverTimeout;
33 SourceListerPtr sourceLister;
34 uint64_t maxSymbolicSize = 0;
35 bool exploreDuplicateStates = true;
37public:
38 Settings();
39 virtual ~Settings();
40 static Ptr instance();
41
42public:
52 Sawyer::CommandLine::SwitchGroup commandLineDebugSwitches();
53
63 Sawyer::CommandLine::SwitchGroup commandLineModelSwitches();
64};
65
66
67} // namespace
68} // namespace
69} // namespace
70
71#endif
72#endif
A collection of related switch declarations.
Holds a value or nothing.
Definition Optional.h:56
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.
The ROSE library.
const size_t UNLIMITED
Effectively unlimited size.
Definition Constants.h:19