Esempio n. 1
0
        public override void TraceStart(ControlFlowGraphProxy cfg)
        {
            this.cfg = cfg;
            var    blocks     = cfg.Blocks.ToList();
            string?methodName = null;

            foreach (var block in blocks)
            {
                if (block.Block.Operations.FirstOrDefault() is not IOperation op)
                {
                    continue;
                }

                var method = op.Syntax.FirstAncestorOrSelf <MethodDeclarationSyntax> ();
                if (method is MethodDeclarationSyntax)
                {
                    methodName = method.Identifier.ValueText;
                }

                break;
            }

            if (methodName?.Equals(traceMethod) == true)
            {
                trace = true;
            }
        }
Esempio n. 2
0
 public TrimDataFlowAnalysis(OperationBlockAnalysisContext context, ControlFlowGraph cfg)
 {
     ControlFlowGraph = new ControlFlowGraphProxy(cfg);
     Lattice          = new (new ValueSetLattice <SingleValue> ());
     Context          = context;
 }