README for Bug Seeding Project

   This is an initial start on a project that was taken much 
further and is not presently distributed in ROSE.  It may be
distributed as part of ROSE at some point in the future.  The
goals are of course the same, to support the evaluation of 
static analysis tools using automatically generated inputs
carefully, and automatically, crafted from a large scale base 
application.



Old notes about this project:

Note that the dot graph layouts can be improved by 
eliminating the SgFile and __binaryFile__null
and the associated edges.

"0x2a98fa0010"[label="0:423\nSgFile\n2\n0x2a98fa0010\n" ];
"0x2a98fa0010" -> "0x2a98fdb010"[label="root" dir=both ];
"0x2a98fa0010" -> "0x2a98fa0010__binaryFile__null"[label="binaryFile" dir=none ];
"0x2a98fa0010__binaryFile__null"[label="" shape=diamond ];


Maybe we could have an attribute which can turn off these nodes in the DOT graph?
This could be implemented to introduce "//" to comment out the line in the dot file
so that it could be edited manually as part of debugging.


Useful command to Graphviz to produce alternative style of graph for visualization of bug seeding:
/usr/apps/graphviz/2.6/bin/twopi inputCode_bufferOverflow_arrayIndexing.C_afterCloneGeneration.dot -Tps -Gsplines=true -v -Goverlap=scale -Gsize=40,40 -Gsep=-.5 -o inputCode_bufferOverflow_arrayIndexing.C_afterCloneGeneration.ps

Output:
tux270.llnl.gov{dquinlan}497: /usr/apps/graphviz/2.6/bin/twopi inputCode_bufferOverflow_arrayIndexing.C_afterCloneGeneration.dot -Tps -Gsplines=true -v -Goverlap=scale -Gsize=40,40 -Gsep=-.5 -o inputCode_bufferOverflow_arrayIndexing.C_afterCloneGeneration.ps
The plugin configuration file:
        /usr/apps/graphviz/2.6/lib/graphviz/config
                was successfully loaded.
    render      :  canon cmap cmapx dia dot fig gd gd2 gif hpgl imap ismap jpeg jpg mif mp pcl pic plain plain-ext png ps ps2 svg svgz vrml vtx wbmp xdot
    layout      :  circo dot fdp neato twopi
    textlayout  : 
    device      : 
    usershape   :  png-gd
twopi: fontname=Times-Roman fontpath=/usr/share/fonts/default/Type1/n021003l.afm
Center = 0x57fa40
Rank separation = 1.000000
Adjusting G./inputCode_bufferOverflow_arrayIndexing.C_afterCloneGeneration.dot using scaling
nodes touch - falling back to straight line edges
Creating edges using line segments
tux270.llnl.gov{dquinlan}498: gv inputCode_bufferOverflow_arrayIndexing.C_afterCloneGeneration.ps &


For more information:
man -M /usr/apps/graphviz/2.6/man dot

How to handle large scale applications:
   1) output pairings of small test codes with each instance of the larger test code.
   2) multiple seeded flaws into a large code will be also represented by a collection
      of smaller test codes.

