예제 #1
0
        public Sifter(string[] args)
        {
            var sc = new ServiceContainer();

            testGen = new TestGenerationService(sc)
            {
                OutputDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)
            };
            fsSvc       = new FileSystemServiceImpl();
            this.cfgSvc = RekoConfigurationService.Load(sc, "reko/reko.config");
            sc.AddService <ITestGenerationService>(testGen);
            sc.AddService <IFileSystemService>(fsSvc);
            sc.AddService <IConfigurationService>(cfgSvc);
            this.processInstr = new Action <byte[], MachineInstruction?>(ProcessInstruction);
            IProcessorArchitecture?arch;

            (arch, this.instrRenderer) = ProcessArgs(args);
            if (arch is null)
            {
                throw new ApplicationException("Unable to load Reko architecture.");
            }
            this.arch        = arch;
            this.baseAddress = Address.Create(arch.PointerType, 0x00000000);    //$TODO allow customization?
            this.progress    = new Progress();
        }
예제 #2
0
 public MutableTestGenerationService(ITestGenerationService svc)
 {
     this.svc        = svc;
     this.lockObject = new object();
 }