private HostServices() { _serviceProvider = new ServiceProvider(); _symbolService = new SymbolService(this); _commandProcessor = new CommandProcessor(RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? ">!ext" : null); _commandProcessor.AddCommands(new Assembly[] { typeof(HostServices).Assembly }); _commandProcessor.AddCommands(new Assembly[] { typeof(ClrMDHelper).Assembly }); _serviceProvider.AddService <IHost>(this); _serviceProvider.AddService <ICommandService>(_commandProcessor); _serviceProvider.AddService <ISymbolService>(_symbolService); _hostWrapper = new HostWrapper(this); _hostWrapper.AddServiceWrapper(IID_IHostServices, this); _hostWrapper.AddServiceWrapper(SymbolServiceWrapper.IID_ISymbolService, () => new SymbolServiceWrapper(this)); VTableBuilder builder = AddInterface(IID_IHostServices, validate: false); builder.AddMethod(new GetHostDelegate(GetHost)); builder.AddMethod(new RegisterDebuggerServicesDelegate(RegisterDebuggerServices)); builder.AddMethod(new CreateTargetDelegate(CreateTarget)); builder.AddMethod(new UpdateTargetDelegate(UpdateTarget)); builder.AddMethod(new FlushTargetDelegate(FlushTarget)); builder.AddMethod(new DestroyTargetDelegate(DestroyTarget)); builder.AddMethod(new DispatchCommandDelegate(DispatchCommand)); builder.AddMethod(new DispatchCommandDelegate(DisplayHelp)); builder.AddMethod(new UninitializeDelegate(Uninitialize)); IHostServices = builder.Complete(); AddRef(); }
public void GetAllStocksName() { SymbolService stinfo = new SymbolService(); List <string> result = stinfo.GetAllSymbolsName(); Assert.IsFalse(result.Count == 0); }
public Analyzer() { LoggingCommand.Initialize(); _serviceProvider = new ServiceProvider(); _consoleProvider = new ConsoleService(); _commandService = new CommandService(); _symbolService = new SymbolService(this); _contextService = new ContextService(this); _serviceProvider.AddService <IHost>(this); _serviceProvider.AddService <IConsoleService>(_consoleProvider); _serviceProvider.AddService <ICommandService>(_commandService); _serviceProvider.AddService <ISymbolService>(_symbolService); _serviceProvider.AddService <IContextService>(_contextService); _serviceProvider.AddServiceFactory <SOSLibrary>(() => SOSLibrary.Create(this)); _contextService.ServiceProvider.AddServiceFactory <ClrMDHelper>(() => { ClrRuntime clrRuntime = _contextService.Services.GetService <ClrRuntime>(); return(clrRuntime != null ? new ClrMDHelper(clrRuntime) : null); }); _commandService.AddCommands(new Assembly[] { typeof(Analyzer).Assembly }); _commandService.AddCommands(new Assembly[] { typeof(ClrMDHelper).Assembly }); _commandService.AddCommands(new Assembly[] { typeof(SOSHost).Assembly }); _commandService.AddCommands(typeof(HelpCommand), (services) => new HelpCommand(_commandService, services)); _commandService.AddCommands(typeof(ExitCommand), (services) => new ExitCommand(_consoleProvider.Stop)); }
public static string FormatSymbolStores(this SymbolService symbolService) { StringBuilder sb = new StringBuilder(); symbolService.ForEachSymbolStore <Microsoft.SymbolStore.SymbolStores.SymbolStore>((symbolStore) => sb.AppendLine(symbolStore.ToString())); return(sb.ToString().Replace(Environment.NewLine, " ").TrimEnd()); }
public async Task ScriptIsProfitableOrNot() { //Get All Candles according to MAStrategy mAStrategy = new MAStrategy(); var symbolService = new SymbolService(); var userSessionService = new UserSessionService(); var symbol = await symbolService.GetAsync(21108); var userSession = await userSessionService.GetCurrentSession(); PositionTestModel positionTestModel = null; if (userSession != null) { var zeropdhaService = new ZerodhaBroker(new UserSessionModel() { AccessToken = userSession.AccessToken, ApiKey = userSession.ApiKey, AppSecret = userSession.AppSecret, PublicToken = userSession.PublicToken, UserId = userSession.UserId }); var candles = zeropdhaService.GetData( symbol, mAStrategy._HistoricalDataTimeframe, DateTime.Now.AddDays(-7), DateTime.Now.AddDays(-2), false); positionTestModel = GetProfitOfDay(symbol, candles); } Assert.IsTrue(positionTestModel.Profit > 1, "Symbol is Not Profitable"); }
private string DownloadModule(string moduleName, uint timeStamp, uint sizeOfImage) { Assert.True(timeStamp != 0 && sizeOfImage != 0); SymbolStoreKey key = PEFileKeyGenerator.GetKey(moduleName, timeStamp, sizeOfImage); Assert.NotNull(key); string downloadedPath = SymbolService.DownloadFile(key); Assert.NotNull(downloadedPath); return(downloadedPath); }
public TestDump(TestConfiguration config) : base(config) { _serviceProvider = new ServiceProvider(); _contextService = new ContextService(this); _symbolService = new SymbolService(this); _serviceProvider.AddService <IContextService>(_contextService); _serviceProvider.AddService <ISymbolService>(_symbolService); // Automatically enable symbol server support _symbolService.AddSymbolServer(msdl: true, symweb: false, timeoutInMinutes: 6, retryCount: 5); _symbolService.AddCachePath(_symbolService.DefaultSymbolCache); }
public override void Invoke() { if (Reset) { Target.Flush(); WriteLine("Internal cached state reset"); } else { Write(Target.ToString()); Write(SymbolService.ToString()); } }
public override void Invoke() { if (MicrosoftSymbolServer && InternalSymbolServer) { throw new DiagnosticsException("Cannot have both -ms and -mi options"); } if ((MicrosoftSymbolServer || InternalSymbolServer) && !string.IsNullOrEmpty(SymbolServerUrl)) { throw new DiagnosticsException("Cannot have -ms or -mi option and a symbol server path"); } if (Disable) { SymbolService.DisableSymbolStore(); } if (Reset) { SymbolService.Reset(); } if (MicrosoftSymbolServer || InternalSymbolServer || !string.IsNullOrEmpty(SymbolServerUrl)) { if (string.IsNullOrEmpty(Cache)) { Cache = SymbolService.DefaultSymbolCache; } SymbolService.AddSymbolServer(MicrosoftSymbolServer, InternalSymbolServer, SymbolServerUrl, AccessToken, Timeout, RetryCount); } if (!string.IsNullOrEmpty(Cache)) { SymbolService.AddCachePath(Cache); } if (!string.IsNullOrEmpty(Directory)) { SymbolService.AddDirectoryPath(Directory); } if (LoadSymbols) { foreach (IModule module in ModuleService.EnumerateModules()) { if (!module.IsManaged) { Write($"Downloading symbol file for {module.FileName}"); string downloadedModulePath = module.LoadSymbols(); WriteLine(" {0}", downloadedModulePath != null ? "SUCCEEDED" : "FAILED"); } } } else { Write(SymbolService.ToString()); } }
public Analyzer() { _serviceProvider = new ServiceProvider(); _consoleProvider = new ConsoleProvider(); _commandProcessor = new CommandProcessor(); _symbolService = new SymbolService(this); _serviceProvider.AddService <IHost>(this); _serviceProvider.AddService <IConsoleService>(_consoleProvider); _serviceProvider.AddService <ICommandService>(_commandProcessor); _serviceProvider.AddService <ISymbolService>(_symbolService); _commandProcessor.AddCommands(new Assembly[] { typeof(Analyzer).Assembly }); _commandProcessor.AddCommands(typeof(HelpCommand), (services) => new HelpCommand(_commandProcessor, services)); _commandProcessor.AddCommands(typeof(ExitCommand), (services) => new ExitCommand(_consoleProvider.Stop)); }
private string DownloadModule(string moduleName, byte[] buildId) { Assert.True(buildId.Length > 0); SymbolStoreKey key = null; OSPlatform platform; if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { // This is the cross-DAC case when OpenVirtualProcess calls on a Linux/MacOS dump. Should never // get here for a Windows dump or for live sessions (RegisterForRuntimeStartup, etc). platform = _targetOS; } else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) { platform = OSPlatform.Linux; } else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) { platform = OSPlatform.OSX; } else { throw new NotSupportedException($"OS not supported {RuntimeInformation.OSDescription}"); } if (platform == OSPlatform.Linux) { key = ELFFileKeyGenerator.GetKeys(KeyTypeFlags.IdentityKey, moduleName, buildId, symbolFile: false, symbolFileName: null).SingleOrDefault(); } else if (platform == OSPlatform.OSX) { key = MachOFileKeyGenerator.GetKeys(KeyTypeFlags.IdentityKey, moduleName, buildId, symbolFile: false, symbolFileName: null).SingleOrDefault(); } Assert.NotNull(key); string downloadedPath = SymbolService.DownloadFile(key); Assert.NotNull(downloadedPath); return(downloadedPath); }
public void SymbolPathTests() { var symbolService = new SymbolService(this); Assert.False(symbolService.ParseSymbolPath("srv")); Assert.False(symbolService.ParseSymbolPath("cache")); Assert.False(symbolService.ParseSymbolPath("symsrv")); string defaultServer = $"Server: {SymbolService.MsdlSymbolServer}"; string defaultPath = $"Cache: {symbolService.DefaultSymbolCache} {defaultServer}"; string localSymbolCache = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? "c:\\localsymbolcache" : "/home/foo/localsymbolcache"; Assert.True(symbolService.ParseSymbolPath("srv*")); Assert.Equal(defaultServer, symbolService.FormatSymbolStores()); symbolService.DisableSymbolStore(); Assert.True(symbolService.ParseSymbolPath("srv**")); Assert.Equal(defaultPath, symbolService.FormatSymbolStores()); symbolService.DisableSymbolStore(); Assert.True(symbolService.ParseSymbolPath("symsrv*symsrv.dll*")); Assert.Equal(defaultServer, symbolService.FormatSymbolStores()); symbolService.DisableSymbolStore(); Assert.True(symbolService.ParseSymbolPath("cache*;srv*")); Assert.Equal(defaultPath, symbolService.FormatSymbolStores()); symbolService.DisableSymbolStore(); Assert.True(symbolService.ParseSymbolPath("srv*https://msdl.microsoft.com/download/symbols/")); Assert.Equal(defaultServer, symbolService.FormatSymbolStores()); symbolService.DisableSymbolStore(); Assert.True(symbolService.ParseSymbolPath($"srv**{SymbolService.MsdlSymbolServer}")); Assert.Equal(defaultPath, symbolService.FormatSymbolStores()); symbolService.DisableSymbolStore(); Assert.True(symbolService.ParseSymbolPath($"srv*{localSymbolCache}*{SymbolService.SymwebSymbolServer}")); string testpath1 = $"Cache: {localSymbolCache} Server: {SymbolService.SymwebSymbolServer}"; Assert.Equal(testpath1, symbolService.FormatSymbolStores()); symbolService.DisableSymbolStore(); Assert.True(symbolService.ParseSymbolPath($"cache*{localSymbolCache};srv*")); string testpath2 = $"Cache: {localSymbolCache} Server: {SymbolService.MsdlSymbolServer}"; Assert.Equal(testpath2, symbolService.FormatSymbolStores()); symbolService.DisableSymbolStore(); Assert.True(symbolService.ParseSymbolPath($"srv**{localSymbolCache}*http://msdl.microsoft.com/download/symbols/")); Assert.Equal($"Cache: {symbolService.DefaultSymbolCache} Cache: {localSymbolCache} Server: http://msdl.microsoft.com/download/symbols/", symbolService.FormatSymbolStores()); symbolService.DisableSymbolStore(); if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { Assert.True(symbolService.ParseSymbolPath($"symsrv*symsrv.dll*{localSymbolCache}*\\\\server\\share")); Assert.Equal($"Cache: {localSymbolCache} Cache: \\\\server\\share", symbolService.FormatSymbolStores()); symbolService.DisableSymbolStore(); Assert.True(symbolService.ParseSymbolPath("symsrv*symsrv.dll*d:\\data\\SYM\\symcache*\\\\aw0eus0symcache.file.core.windows.net\\Symbols*http://localhost/remote200/30e07e1454924e55901d7f693f7eddf1/0/x64/4542784547/remote")); Assert.Equal("Cache: d:\\data\\SYM\\symcache Cache: \\\\aw0eus0symcache.file.core.windows.net\\Symbols Server: http://localhost/remote200/30e07e1454924e55901d7f693f7eddf1/0/x64/4542784547/remote/", symbolService.FormatSymbolStores()); symbolService.DisableSymbolStore(); } string symbolDirectory = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? "c:\\symbols\\" : "/home/foo/symbols/"; Assert.True(symbolService.ParseSymbolPath(symbolDirectory)); Assert.Equal($"Directory: {symbolDirectory}", symbolService.FormatSymbolStores()); symbolService.DisableSymbolStore(); string symbolDirectory2 = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? "c:\\foo\\bar" : "/home/foo/bar"; Assert.True(symbolService.ParseSymbolPath($"{symbolDirectory};{symbolDirectory2};srv*")); Assert.Equal($"Directory: {symbolDirectory} Directory: {symbolDirectory2} " + defaultServer, symbolService.FormatSymbolStores()); symbolService.DisableSymbolStore(); }
public SymbolController() { _symbolService = new SymbolService(); }