public async void SetStackTrace(string text) { var componentModel = (IComponentModel)ServiceProvider.GetService(typeof(SComponentModel)); var workspace = componentModel.GetService <VisualStudioWorkspace>(); var solution = workspace.CurrentSolution; var compilations = await GetCompilationsAsync(solution); var writer = new VisualStudioStackTraceWriter(compilations, ServiceProvider); StackTraceWriter.Write(text, writer); var textBlock = new TextBlock { Padding = new Thickness(16), FontFamily = new FontFamily("Consolas") }; textBlock.Inlines.AddRange(writer.GetInlines()); Content = new ScrollViewer { VerticalScrollBarVisibility = ScrollBarVisibility.Auto, HorizontalScrollBarVisibility = ScrollBarVisibility.Auto, Content = textBlock }; }
private static void WriteStackTraceAndMethods(CSharpCompilation compilation, string actualStackTrace, out string stackTrace, out ImmutableArray <IMethodSymbol> methods) { var recorder = new RecordingCompilationStackTraceWriter(compilation); StackTraceWriter.Write(actualStackTrace, recorder); stackTrace = recorder.GetText(); methods = recorder.GetMethods(); }