예제 #1
0
 public void WriteIssuesForProcess(AutomatedAnalysisTraceProcess process, List <AutomatedAnalysisIssue> issues)
 {
     _writer.WriteLine($"<H3>Process {process.DisplayID}: {process.Description}</H3>");
     _writer.WriteLine("<Table Border=\"1\">");
     _writer.WriteLine("<TR><TH>Issue Title</TH><TH>Notes</TH></TR>");
     foreach (AutomatedAnalysisIssue issue in issues)
     {
         _writer.WriteLine($"<TR><TD>{issue.Title}</TD><TD>{issue.Description}<BR/><BR/>More details: <A HREF=\"{issue.URL}\">{issue.URL}</A></TD></TR>");
     }
     _writer.WriteLine("</Table>");
 }
예제 #2
0
        StackView IAutomatedAnalysisTrace.GetCPUStacks(AutomatedAnalysisTraceProcess process)
        {
            StackView    stackView    = null;
            TraceProcess traceProcess = TraceLog.Processes[(ProcessIndex)process.UniqueID];

            if (traceProcess != null)
            {
                StackSource stackSource = TraceLog.CPUStacks(traceProcess);
                stackView = new StackView(traceProcess.Log, stackSource, SymbolReader);
            }
            return(stackView);
        }
        public List <AutomatedAnalysisIssue> this[AutomatedAnalysisTraceProcess process]
        {
            get
            {
                List <AutomatedAnalysisIssue> issues;
                if (!_issues.TryGetValue(process, out issues))
                {
                    issues = new List <AutomatedAnalysisIssue>();
                    _issues.Add(process, issues);
                }

                return(issues);
            }
        }
예제 #4
0
        public ProcessContext(AutomatedAnalysisExecutionContext executionContext, AutomatedAnalysisTraceProcess process)
        {
            _executionContext        = executionContext;
            AutomatedAnalysisProcess = process;
            AutomatedAnalysisTraceLog traceLog = executionContext.Trace as AutomatedAnalysisTraceLog;

            if (traceLog != null)
            {
                Process = traceLog.TraceLog.Processes[(ProcessIndex)process.UniqueID];
            }

            Issues        = executionContext.Issues[process];
            _symbolReader = executionContext.SymbolReader;
        }
        // Keep this for now because GLAD depends on it.
        public List <AutomatedAnalysisIssue> this[TraceProcess process]
        {
            get
            {
                AutomatedAnalysisTraceProcess traceProcess = new AutomatedAnalysisTraceProcess((int)process.ProcessIndex, process.ProcessID, process.CommandLine, process.ManagedProcess());
                List <AutomatedAnalysisIssue> issues;
                if (!_issues.TryGetValue(traceProcess, out issues))
                {
                    issues = new List <AutomatedAnalysisIssue>();
                    _issues.Add(traceProcess, issues);
                }

                return(issues);
            }
        }