示例#1
0
        private void IndexPdb(string pdbPath)
        {
            Config.Logger.Log(VerbosityLevel.Basic, string.Format("Indexing pdb '{0}'", pdbPath));

            var repositories = Repositories;

            // If we're not in fast mode, we need to prune the list of repo files based upon the pdb file listing
            if (!Config.FastMode)
            {
                // Get the list of files from the source tool
                var files = this.GetFileListing(pdbPath);
                Config.Logger.Log(VerbosityLevel.Basic, string.Format("Pdb contains {0} files:", files.Count));
                if (Config.Logger.IsVerboseEnough(VerbosityLevel.Detailed))
                {
                    foreach (var file in files)
                    {
                        Config.Logger.Log(VerbosityLevel.Detailed, string.Format("  {0}", file.PdbFilePath));
                    }
                }

                // Evaluate the pdb source files given our front end
                repositories = Repositories.Clone();
                FrontEnd.EvaluateFiles(files, Repositories);
            }

            // Build the text data for the srcsrv stream from the backend
            var srcSrvStream = BackEnd.BuildSrcSrvStream(Repositories);

            Config.Logger.Log(VerbosityLevel.Detailed, string.Format("Writing stream\n{0}", srcSrvStream));

            // Write the stream out to the pdb file
            PdbStr.WriteStream(pdbPath, srcSrvStream);

            if (Config.ExtractDebugStreams)
            {
                var debugStream = new SourceIndexerDebugStreams();
                ExtractDebugStreams(pdbPath, debugStream);
                DebugStreams.Add(pdbPath, debugStream);
            }
        }
示例#2
0
 public string GetSourceIndexingResults(string pdbPath)
 {
     return(PdbStr.ReadStream(pdbPath));
 }