|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
ObjectDaikon
public final class Daikon
The "main" method is the main entry point for the Daikon invariant detector. The "mainHelper" method is the entry point, when called programmatically.
| Nested Class Summary | |
|---|---|
static class |
Daikon.FileIOProgress
Outputs FileIO progress information. |
static class |
Daikon.FileOptions
|
static class |
Daikon.TerminationMessage
Thrown to indicate that main should not print a stack trace, but only print the message itself to the user. |
| Field Summary | |
|---|---|
static PptMap |
all_ppts
|
static boolean |
check_program_types
|
static String |
conf_limit_SWITCH
|
static String |
config_option_SWITCH
|
static String |
config_SWITCH
|
static Invariant |
current_inv
current invariant (used for debugging) |
static String |
debug_SWITCH
|
static String |
debugAll_SWITCH
|
static Logger |
debugEquality
|
static Logger |
debugInit
Debug tracer for ppt initialization. |
static Logger |
debugProgress
|
static Logger |
debugStats
Prints out statistics concerning equality sets, suppressions, etc. |
static Logger |
debugTrace
Debug tracer. |
static boolean |
disable_modbit_check_error
|
static boolean |
disable_modbit_check_message
|
static String |
disc_reason_SWITCH
|
static boolean |
dkconfig_calc_possible_invs
Boolean. |
static boolean |
dkconfig_disable_splitting
Boolean. |
static boolean |
dkconfig_enable_floats
Boolean. |
static String |
dkconfig_guardNulls
If "always", then invariants are always guarded. |
static boolean |
dkconfig_internal_check
When true, perform detailed internal checking. |
static boolean |
dkconfig_output_conditionals
Boolean. |
static int |
dkconfig_ppt_perc
Integer. |
static boolean |
dkconfig_print_sample_totals
Boolean. |
static int |
dkconfig_progress_delay
The amount of time to wait between updates of the progress display, measured in milliseconds. |
static int |
dkconfig_progress_display_width
The number of columns of progress information to display. |
static boolean |
dkconfig_quiet
Boolean. |
static boolean |
dkconfig_show_stack_trace
If true, show stack traces for errors such as file format errors. |
static boolean |
dkconfig_suppressSplitterErrors
When true compilation errors during splitter file generation will not be reported to the user. |
static boolean |
dkconfig_undo_opts
Boolean. |
static boolean |
dkconfig_use_dynamic_constant_optimization
Whether to use the dynamic constants optimization. |
static String |
files_from_SWITCH
|
static String |
format_SWITCH
|
static String |
help_SWITCH
|
static boolean |
ignore_comparability
|
static File |
inv_file
|
static boolean |
invariants_check_canBeMissing
|
static boolean |
invariants_check_canBeMissing_arrayelt
|
static boolean |
isInferencing
Whether Daikon is in its inferencing loop. |
static String |
lineSep
|
static String |
list_type_SWITCH
|
static String |
mem_stat_SWITCH
|
static String |
no_dataflow_hierarchy_SWITCH
|
static String |
no_show_progress_SWITCH
|
static boolean |
no_text_output
|
static String |
no_text_output_SWITCH
|
static boolean |
noversion_output
Whether Daikon should print its version number and date. |
static String |
noversion_SWITCH
|
static boolean |
omit_from_output
When true, omit certain invariants from the output .inv file. |
static String |
omit_from_output_SWITCH
|
static boolean[] |
omit_types
An array of flags, indexed by characters, in which a true entry means that invariants of that sort should be omitted from the output .inv file. |
static OutputFormat |
output_format
|
static boolean |
output_num_samples
|
static String |
output_num_samples_SWITCH
|
static String |
ppt_max_name
If set, only ppts less than ppt_max_name are included. |
static Pattern |
ppt_omit_regexp
|
static String |
ppt_omit_regexp_SWITCH
|
static Pattern |
ppt_regexp
|
static String |
ppt_regexp_SWITCH
|
static String |
progress
Human-friendly progress status message. |
static ArrayList<Invariant> |
proto_invs
|
static String |
release_date
|
static String |
release_string
|
static String |
release_version
|
static File |
server_dir
|
static String |
server_SWITCH
|
static boolean |
show_progress
|
static String |
show_progress_SWITCH
|
static boolean |
suppress_implied_controlled_invariants
Whether to use the bottom up implementation of the dataflow hierarchy. |
static boolean |
suppress_implied_postcondition_over_prestate_invariants
|
static boolean |
suppress_redundant_invariants_with_simplify
|
static String |
suppress_redundant_SWITCH
|
static String |
track_SWITCH
|
static boolean |
use_dataflow_hierarchy
Whether to associate the program points in a dataflow hierarchy, as via Nimmer's thesis. |
static boolean |
use_equality_optimization
Whether to use the "new" equality set mechanism for handling equality, using canonicals to have instantiation of invariants only over equality sets. |
static boolean |
using_DaikonSimple
Boolean. |
static Pattern |
var_omit_regexp
|
static String |
var_omit_regexp_SWITCH
|
static Pattern |
var_regexp
|
static String |
var_regexp_SWITCH
|
| Method Summary | |
|---|---|
static void |
cleanup()
Cleans up static variables so that mainHelper can be called more than once. |
static void |
create_combined_exits(PptMap ppts)
Create EXIT program points as needed for EXITnn program points. |
static void |
create_splitters(Set<File> spinfo_files)
|
static void |
createUpperPpts(PptMap all_ppts)
Creates upper program points by merging together the invariants from all of the lower points. |
static void |
init_ppt(PptTopLevel ppt,
PptMap all_ppts)
Create combined exit points, setup splitters, and add orig and derived variables, |
static void |
main(String[] args)
The arguments to daikon.Daikon are file names. |
static void |
mainHelper(String[] args)
This does the work of main, but it never calls System.exit, so it is appropriate to be called progrmmatically. |
static void |
ppt_stats(PptMap all_ppts)
Print out basic statistics (samples, invariants, variables, etc) about each ppt |
protected static Daikon.FileOptions |
read_options(String[] args,
String usage)
|
static void |
setup_NISuppression()
Initialize NIS suppression |
static void |
setup_proto_invs()
Creates the list of prototype invariants for all Daikon invariants. |
static void |
setup_splitters(PptTopLevel ppt)
Sets up splitting on all ppts. |
static void |
setupEquality(PptTopLevel ppt)
Initialize the equality sets for each variable |
static void |
undoOpts(PptMap all_ppts)
Undoes the invariants suppressed for the dynamic constant, suppression and equality set optimizations (should yield the same invariants as the simple incremental algorithm |
| Methods inherited from class Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static int dkconfig_progress_delay
public static boolean dkconfig_show_stack_trace
public static final String release_version
public static final String release_date
public static final String release_string
public static boolean dkconfig_output_conditionals
public static boolean dkconfig_enable_floats
public static boolean dkconfig_calc_possible_invs
public static int dkconfig_ppt_perc
ppt_perc program points are processed.
A percentage of 100 matches all program points.
public static boolean dkconfig_print_sample_totals
public static final String lineSep
public static boolean dkconfig_disable_splitting
public static boolean dkconfig_quiet
progress_delay to -1.
public static final boolean check_program_types
public static final boolean invariants_check_canBeMissing
public static final boolean invariants_check_canBeMissing_arrayelt
public static final boolean disable_modbit_check_message
public static final boolean disable_modbit_check_error
public static boolean no_text_output
public static boolean show_progress
public static boolean use_equality_optimization
public static boolean dkconfig_use_dynamic_constant_optimization
public static boolean dkconfig_undo_opts
public static boolean using_DaikonSimple
public static String dkconfig_guardNulls
Guarding means adding predicates that ensure that variables can be
dereferenced. For instance, if a can be null --- that is,
if a.b can be nonsensical --- then the guarded version of
a.b == 5
is
(a != null) ==> (a.b == 5).
(To do: Some configuration option (maybe this one) should add guards for other reasons that lead to nonsensical values (@pxref{Variable names}).) @cindex nonsensical values for variables, guarding
public static boolean dkconfig_suppressSplitterErrors
public static boolean use_dataflow_hierarchy
public static boolean suppress_implied_controlled_invariants
public static boolean suppress_implied_postcondition_over_prestate_invariants
public static boolean suppress_redundant_invariants_with_simplify
public static OutputFormat output_format
public static boolean output_num_samples
public static boolean ignore_comparability
public static Pattern ppt_regexp
public static Pattern ppt_omit_regexp
public static Pattern var_regexp
public static Pattern var_omit_regexp
public static boolean dkconfig_internal_check
public static String ppt_max_name
public static File inv_file
public static boolean noversion_output
public static boolean isInferencing
public static boolean omit_from_output
public static boolean[] omit_types
public static final String help_SWITCH
public static final String no_text_output_SWITCH
public static final String format_SWITCH
public static final String show_progress_SWITCH
public static final String no_show_progress_SWITCH
public static final String noversion_SWITCH
public static final String output_num_samples_SWITCH
public static final String files_from_SWITCH
public static final String omit_from_output_SWITCH
public static final String conf_limit_SWITCH
public static final String list_type_SWITCH
public static final String no_dataflow_hierarchy_SWITCH
public static final String suppress_redundant_SWITCH
public static final String ppt_regexp_SWITCH
public static final String ppt_omit_regexp_SWITCH
public static final String var_regexp_SWITCH
public static final String var_omit_regexp_SWITCH
public static final String server_SWITCH
public static final String config_SWITCH
public static final String config_option_SWITCH
public static final String debugAll_SWITCH
public static final String debug_SWITCH
public static final String track_SWITCH
public static final String disc_reason_SWITCH
public static final String mem_stat_SWITCH
public static File server_dir
public static PptMap all_ppts
public static Invariant current_inv
public static ArrayList<Invariant> proto_invs
public static final Logger debugTrace
public static final Logger debugProgress
public static final Logger debugEquality
public static final Logger debugInit
public static final Logger debugStats
public static int dkconfig_progress_display_width
public static String progress
| Method Detail |
|---|
public static void main(String[] args)
public static void mainHelper(String[] args)
main(String[]),
Daikon.TerminationMessagepublic static void cleanup()
protected static Daikon.FileOptions read_options(String[] args,
String usage)
public static void setup_proto_invs()
public static void createUpperPpts(PptMap all_ppts)
public static void init_ppt(PptTopLevel ppt,
PptMap all_ppts)
public static void create_combined_exits(PptMap ppts)
public static void setup_splitters(PptTopLevel ppt)
public static void ppt_stats(PptMap all_ppts)
public static void setup_NISuppression()
public static void setupEquality(PptTopLevel ppt)
public static void create_splitters(Set<File> spinfo_files)
throws IOException
IOExceptionpublic static void undoOpts(PptMap all_ppts)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||