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); }
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; }); }
/// <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); }