コード例 #1
0
 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());
     }
 }