예제 #1
0
        private static void RunStaticLocksetAnalysisInstrumentationEngine()
        {
            Program.StartTimer("StaticLocksetAnalysisInstrumentationEngine");

            foreach (var ep in DeviceDriver.EntryPoints)
            {
                AnalysisContext ac = null;
                new AnalysisContextParser(Program.FileList[Program.FileList.Count - 1], "wbpl").TryParseNew(
                    ref ac, new List <string> {
                    ep.Name
                });

                Analysis.SharedStateAnalyser.AnalyseMemoryRegions(ac, ep);
                AnalysisContext.RegisterEntryPointAnalysisContext(ac, ep);
            }

            foreach (var ep in DeviceDriver.EntryPoints)
            {
                var ac = AnalysisContext.GetAnalysisContext(ep);
                new StaticLocksetAnalysisInstrumentationEngine(ac, ep).Run();
            }

            Program.StopTimer();

            if (!WhoopEngineCommandLineOptions.Get().SkipInference)
            {
                return;
            }

            SummaryInformationParser.ToFile(Program.FileList);
        }
예제 #2
0
        public SummaryInformation GetSummaryInformation()
        {
            string             textResponse = GetResponse(ApiVerb.Summary);
            SummaryInformation result       = new SummaryInformation();

            SummaryInformationParser.ParseTextForSummaryInformation(textResponse, result);
            return(result);
        }
예제 #3
0
        private static void RunSummaryGenerationEngine()
        {
            if (WhoopEngineCommandLineOptions.Get().SkipInference)
            {
                return;
            }

            Program.StartTimer("SummaryGenerationEngine");

            foreach (var ep in DeviceDriver.EntryPoints)
            {
                var ac = AnalysisContext.GetAnalysisContext(ep);
                new WatchdogAnalysisEngine(ac, ep).Run();
            }

            foreach (var ep in DeviceDriver.EntryPoints)
            {
                var ac = AnalysisContext.GetAnalysisContext(ep);
                new SummaryGenerationEngine(ac, ep).Run();
            }

            Program.StopTimer();
            SummaryInformationParser.ToFile(Program.FileList);
        }