|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
ObjectDaikonSimple
public class DaikonSimple
DaikonSimple reads a declaration file and trace file and outputs a list of likely invariants using the simple incremental algorithm. Its methods parallel those of Daikon but oftentimes certain checks are eliminated from DaikonSimple's methods because there is less filtering of invariants and variables. DaikonSimple was written to check the implementation of the optimizations in Daikon. DaikonSimple does not use an optimizations, and its processing will produce a complete set of true invariants. Daikon does have flags to "turn off" some of its optimizations but there are some optimizations are built into the way Daikon processes the samples (e.g. variable hierarchy and bottom up processing). In addition, we want to check the optimizations, so we don't want to bypass them. In Daikon, code was written to "undo" the optimizations, so we could recover the invariants that were previously filtered out or not created (see Daikon.dkconfig_undo_opts flag). By comparing the output from the two, we can find problems with the optimization implementation by tracking the cause of the differences.
| Nested Class Summary | |
|---|---|
static class |
DaikonSimple.SimpleProcessor
The SimpleProcessor class processes each sample in the dtrace file. |
| Field Summary | |
|---|---|
static PptMap |
all_ppts
|
static Logger |
debug
|
static Logger |
debug_detail
|
| Constructor Summary | |
|---|---|
DaikonSimple()
|
|
| Method Summary | |
|---|---|
static void |
instantiate_views_and_invariants(PptTopLevel ppt)
Install views and the invariants. |
static boolean |
is_slice_ok(VarInfo v1,
VarInfo v2)
Returns whether or not the specified binary slice should be created. |
static boolean |
is_slice_ok(VarInfo v1,
VarInfo v2,
VarInfo v3)
Returns whether or not the specified ternary slice should be created. |
static boolean |
is_var_ok(VarInfo var)
|
static void |
main(String[] args)
|
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. |
| Methods inherited from class Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final Logger debug
public static final Logger debug_detail
public static PptMap all_ppts
| Constructor Detail |
|---|
public DaikonSimple()
| Method Detail |
|---|
public static void main(String[] args)
throws IOException,
FileNotFoundException
IOException
FileNotFoundException
public static void mainHelper(String[] args)
throws IOException,
FileNotFoundException
IOException
FileNotFoundExceptionmain(String[]),
Daikon.TerminationMessage,
Daikon.mainHelper(String[])public static void instantiate_views_and_invariants(PptTopLevel ppt)
PptTopLevel.instantiate_views_and_invariants()public static boolean is_var_ok(VarInfo var)
public static boolean is_slice_ok(VarInfo v1,
VarInfo v2)
PptTopLevel.is_slice_ok(VarInfo, VarInfo)
public static boolean is_slice_ok(VarInfo v1,
VarInfo v2,
VarInfo v3)
PptTopLevel.is_slice_ok(VarInfo, VarInfo, VarInfo)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||