Пример #1
0
        static ProgramPointGraph Analyze(ControlFlowGraph.ControlFlowGraph entryMethod, string fileName, MemoryModels.MemoryModelFactory memoryModel)
        {
            FileInfo fileInfo = new FileInfo(fileName);
            var      analysis = new ForwardAnalysis(entryMethod, memoryModel);

            analysis.Analyse();
            return(analysis.ProgramPointGraph);
        }
Пример #2
0
        public Func <AState, IFixPointInfo <APC, AState> > CreateForward <AState> (
            IAnalysis <APC, AState, IILVisitor <APC, Expression, Variable, AState, AState>, EdgeData> analysis)
        {
            ForwardAnalysis <AState, EdgeData> solver = ForwardAnalysis <AState, EdgeData> .Make(ILDecoder, analysis);

            return((initialState) => {
                solver.Run(initialState);
                return solver;
            });
        }
Пример #3
0
 /// <summary>
 /// Analyzes the forward analysis and return the resulting <see cref="ProgramPointGraph"/>
 /// </summary>
 /// <param name="analysis"><see cref="ProgramPointGraph"/> that contains CFG and memory model</param>
 /// <returns><see cref="ProgramPointGraph"/> generated during the analysis</returns>
 public static ProgramPointGraph GeneratePpg(ForwardAnalysis analysis)
 {
     analysis.Analyse();
     return(analysis.ProgramPointGraph);
 }