foxdec-0.1.0.0: Formally Verified x86-64 Decompilation
Safe HaskellNone
LanguageHaskell2010

Config

Description

 
Synopsis

Documentation

data Config Source #

A datastructure storing all configurable options

Constructors

Config 

Fields

  • continue_on_unknown_instruction :: Bool

    When encountering an unknown instruction do we either * report it to stderr but continue (True), or * exit with an error message (False)? Sane default: True

  • generate_pdfs :: Bool

    Do we call graphviz to generate PDFs? Set to true for small examples, false for larger ones.

  • verbose_logs :: Bool

    Must the invariants be stored in the logs? Sane default: False

  • store_preconditions_in_L0 :: Bool

    Must preconditions be stored in the .L0 file? Set to true for small examples, false for larger ones. Sane default: False

  • store_assertions_in_L0 :: Bool

    Must assertions be stored in the .L0 file? Set to true for small examples, false for larger ones. Sane default: False

  • max_time :: Natural

    The maximum verification time in seconds per function Sane default: 30 minutes = 000000 * 60 * 30 = 1800000000

  • max_num_of_cases :: Natural

    The maximum number of separate concrete cases considered non-deterministically, before abstraction is applied. Has no effect on soundness, but lower values cause more abstraction. Sane default: 5

  • max_num_of_bases :: Natural

    The maximum number of pointer bases a bottom-expression may have, before more asbtraction is applied. Has no effect on soundness, but lower values cause more abstraction. Sane default: 25

  • max_num_of_sources :: Natural
     
  • max_jump_table_size :: Natural

    The maximum number of sources a bottom-expression may have, before resorting to rock-bottom. Has no effect on soundness, but lower values cause more abstraction. Sane default: 100

  • max_expr_size :: Natural

    The maximum size of an expression (counting each operator and each leaf as 1), before a symbolic expression is abstracted to rock bottom. Does not affect soundness, but if the value is set too low, then the results becomes overly overapproximative. Sane default: 3000

  • nasm_with_safe_labels :: Bool

    If set to True, then the NASM code will have longer labels (less readable) but always correct. If set to False, labels may occur twice preventing compilation. Sane default: True

Instances

Instances details
Show Config Source # 
Instance details

Defined in Config

Generic Config Source # 
Instance details

Defined in Config

Associated Types

type Rep Config :: Type -> Type #

Methods

from :: Config -> Rep Config x #

to :: Rep Config x -> Config #

Serialize Config Source # 
Instance details

Defined in Config

NFData Config Source # 
Instance details

Defined in Config

Methods

rnf :: Config -> () #

FromDhall Config Source # 
Instance details

Defined in Config

type Rep Config Source # 
Instance details

Defined in Config

type Rep Config = D1 ('MetaData "Config" "Config" "foxdec-0.1.0.0-F8J4QQ8bsQELJyhc4kJb0m" 'False) (C1 ('MetaCons "Config" 'PrefixI 'True) (((S1 ('MetaSel ('Just "continue_on_unknown_instruction") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: (S1 ('MetaSel ('Just "generate_pdfs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "verbose_logs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))) :*: (S1 ('MetaSel ('Just "store_preconditions_in_L0") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: (S1 ('MetaSel ('Just "store_assertions_in_L0") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "max_time") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Natural)))) :*: ((S1 ('MetaSel ('Just "max_num_of_cases") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Natural) :*: (S1 ('MetaSel ('Just "max_num_of_bases") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Natural) :*: S1 ('MetaSel ('Just "max_num_of_sources") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Natural))) :*: (S1 ('MetaSel ('Just "max_jump_table_size") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Natural) :*: (S1 ('MetaSel ('Just "max_expr_size") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Natural) :*: S1 ('MetaSel ('Just "nasm_with_safe_labels") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))))))

parse_config Source #

Arguments

:: String

The filename

-> IO Config 

Given a filename, parse a config in the Dhall language See: https://dhall-lang.org