39 instantiations of CrashTelemetry
Microsoft.Build (1)
BackEnd\BuildManager\BuildManager.cs (1)
1267var telemetry = new CrashTelemetry
Microsoft.Build.Framework (1)
Telemetry\CrashTelemetryRecorder.cs (1)
208CrashTelemetry crashTelemetry = new();
Microsoft.Build.Framework.UnitTests (37)
CrashTelemetry_Tests.cs (37)
21CrashTelemetry telemetry = new(); 44CrashTelemetry telemetry = new(); 65CrashTelemetry t1 = new(); 66CrashTelemetry t2 = new(); 84CrashTelemetry telemetry = new(); 105CrashTelemetry telemetry = new() 137CrashTelemetry telemetry = new() 157CrashTelemetry telemetry = new() 187CrashTelemetry telemetry = new(); 198CrashTelemetry telemetry = new(); 217CrashTelemetry telemetry = new(); 237CrashTelemetry telemetry = new(); 256CrashTelemetry telemetry = new(); 318CrashTelemetry telemetry = new() 342CrashTelemetry telemetry = new() 449CrashTelemetry telemetry = new(); 468CrashTelemetry telemetry = new(); 485CrashTelemetry telemetry = new(); 551CrashTelemetry telemetry = new(); 570CrashTelemetry telemetry = new() 587CrashTelemetry telemetry = new() 602CrashTelemetry telemetry = new() 623CrashTelemetry telemetry = new(); 663CrashTelemetry telemetry = new() 693CrashTelemetry telemetry = new() 733CrashTelemetry telemetry = new() 776CrashTelemetry telemetry = new() 795CrashTelemetry telemetry = new() 868CrashTelemetry telemetry = new(); 902CrashTelemetry telemetry = new(); 917CrashTelemetry telemetry = new(); 928CrashTelemetry telemetry = new(); 950CrashTelemetry telemetry = new(); 968CrashTelemetry t1 = new(); 969CrashTelemetry t2 = new(); 986CrashTelemetry t1 = new(); 987CrashTelemetry t2 = new();
156 references to CrashTelemetry
Microsoft.Build (1)
BackEnd\BuildManager\BuildManager.cs (1)
1267var telemetry = new CrashTelemetry
Microsoft.Build.Framework (13)
Telemetry\BuildCheckTelemetry.cs (1)
34string? sanitizedMessage = CrashTelemetry.TruncateMessage(exception.Message);
Telemetry\CrashTelemetryRecorder.cs (11)
53CrashTelemetry crashTelemetry = CreateCrashTelemetry(exception, exitType, isUnhandled, isCritical); 82CrashTelemetry crashTelemetry = CreateCrashTelemetry(exception, exitType, isUnhandled, isCritical); 111CrashTelemetry? crashTelemetry = KnownTelemetry.CrashTelemetry; 145private static void PostFaultEvent(CrashTelemetry crashTelemetry) 191: base(CrashTelemetry.TruncateMessage(original.Message) ?? original.GetType().FullName, 195? CrashTelemetry.SanitizeFilePathsInText(original.StackTrace) 202private static CrashTelemetry CreateCrashTelemetry( 208CrashTelemetry crashTelemetry = new(); 217/// Emits a pre-populated <see cref="CrashTelemetry"/> for an EndBuild hang. 220/// The caller is responsible for populating the <see cref="CrashTelemetry"/> with 224public static void EmitEndBuildHangDiagnostics(CrashTelemetry crashTelemetry)
Telemetry\KnownTelemetry.cs (1)
33public static CrashTelemetry? CrashTelemetry { get; set; }
Microsoft.Build.Framework.UnitTests (142)
CrashTelemetry_Tests.cs (142)
21CrashTelemetry telemetry = new(); 44CrashTelemetry telemetry = new(); 65CrashTelemetry t1 = new(); 66CrashTelemetry t2 = new(); 84CrashTelemetry telemetry = new(); 105CrashTelemetry telemetry = new() 121props[nameof(CrashTelemetry.ExceptionType)].ShouldBe("System.InvalidOperationException"); 122props[nameof(CrashTelemetry.InnerExceptionType)].ShouldBe("System.ArgumentException"); 123props[nameof(CrashTelemetry.ExitType)].ShouldBe("Unexpected"); 124props[nameof(CrashTelemetry.IsCritical)].ShouldBe("False"); 125props[nameof(CrashTelemetry.IsUnhandled)].ShouldBe("True"); 126props[nameof(CrashTelemetry.StackHash)].ShouldBe("ABC123"); 127props[nameof(CrashTelemetry.StackTop)].ShouldBe("at Foo.Bar()"); 128props[nameof(CrashTelemetry.HResult)].ShouldBe("-2147024809"); 129props[nameof(CrashTelemetry.BuildEngineVersion)].ShouldBe("17.0.0"); 130props[nameof(CrashTelemetry.BuildEngineFrameworkName)].ShouldBe(".NET 10.0"); 131props[nameof(CrashTelemetry.BuildEngineHost)].ShouldBe("VS"); 137CrashTelemetry telemetry = new() 144props.ShouldContainKey(nameof(CrashTelemetry.ExceptionType)); 145props.ShouldContainKey(nameof(CrashTelemetry.IsUnhandled)); 146props.ShouldNotContainKey(nameof(CrashTelemetry.InnerExceptionType)); 147props.ShouldNotContainKey(nameof(CrashTelemetry.InnerExceptionStackTrace)); 148props.ShouldNotContainKey(nameof(CrashTelemetry.InnerExceptionMessage)); 149props.ShouldNotContainKey(nameof(CrashTelemetry.LoggerEventType)); 150props.ShouldNotContainKey(nameof(CrashTelemetry.StackHash)); 151props.ShouldNotContainKey(nameof(CrashTelemetry.BuildEngineHost)); 157CrashTelemetry telemetry = new() 172props[nameof(CrashTelemetry.ExceptionType)].ShouldBe("System.InvalidOperationException"); 173props[nameof(CrashTelemetry.ExitType)].ShouldBe("Unexpected"); 174props[nameof(CrashTelemetry.IsCritical)].ShouldBe(true); 175props[nameof(CrashTelemetry.IsUnhandled)].ShouldBe(false); 176props[nameof(CrashTelemetry.StackHash)].ShouldBe("DEF456"); 177props[nameof(CrashTelemetry.StackTop)].ShouldBe("at Foo.Baz()"); 178props[nameof(CrashTelemetry.HResult)].ShouldBe(-1); 179props[nameof(CrashTelemetry.BuildEngineVersion)].ShouldBe("17.0.0"); 180props[nameof(CrashTelemetry.BuildEngineFrameworkName)].ShouldBe(".NET 10.0"); 181props[nameof(CrashTelemetry.BuildEngineHost)].ShouldBe("CLI"); 187CrashTelemetry telemetry = new(); 198CrashTelemetry telemetry = new(); 217CrashTelemetry telemetry = new(); 237CrashTelemetry telemetry = new(); 256CrashTelemetry telemetry = new(); 286string? result = CrashTelemetry.ExtractOriginNamespace(ex); 302CrashOriginKind result = CrashTelemetry.ClassifyOrigin(originNamespace); 311string? result = CrashTelemetry.ExtractOriginNamespace(ex); 318CrashTelemetry telemetry = new() 331props[nameof(CrashTelemetry.CrashOrigin)].ShouldBe("MSBuild"); 332props[nameof(CrashTelemetry.CrashOriginNamespace)].ShouldBe("Microsoft.Build.BackEnd"); 333props[nameof(CrashTelemetry.InnermostExceptionType)].ShouldBe("System.IO.IOException"); 334props[nameof(CrashTelemetry.InnerExceptionStackTrace)].ShouldBe(" at SomeLogger.HandleEvent()"); 335props[nameof(CrashTelemetry.InnerExceptionMessage)].ShouldBe("Cannot access a disposed object."); 336props[nameof(CrashTelemetry.LoggerEventType)].ShouldBe("BuildFinishedEventArgs"); 342CrashTelemetry telemetry = new() 355props[nameof(CrashTelemetry.CrashOrigin)].ShouldBe("ThirdParty"); 356props[nameof(CrashTelemetry.CrashOriginNamespace)].ShouldBe("Microsoft.VisualStudio.RemoteControl"); 357props[nameof(CrashTelemetry.InnermostExceptionType)].ShouldBe("System.OutOfMemoryException"); 358props[nameof(CrashTelemetry.InnerExceptionStackTrace)].ShouldBe(" at SomeComponent.DoWork()"); 359props[nameof(CrashTelemetry.InnerExceptionMessage)].ShouldBe("Insufficient memory."); 360props[nameof(CrashTelemetry.LoggerEventType)].ShouldBe("BuildMessageEventArgs"); 371string? caller = CrashTelemetry.ExtractStackCaller(ex); 385string? caller = CrashTelemetry.ExtractStackCaller(ex); 396string? caller = CrashTelemetry.ExtractStackCaller(ex); 406string? caller = CrashTelemetry.ExtractStackCaller(ex); 424string? caller = CrashTelemetry.ExtractStackCaller(ex); 438string? caller = CrashTelemetry.ExtractStackCaller(ex); 449CrashTelemetry telemetry = new(); 468CrashTelemetry telemetry = new(); 485CrashTelemetry telemetry = new(); 502CrashTelemetry.TruncateMessage(null).ShouldBeNull(); 503CrashTelemetry.TruncateMessage("").ShouldBeNull(); 510string? result = CrashTelemetry.TruncateMessage(longMessage); 520string? result = CrashTelemetry.TruncateMessage(message); 533string? result = CrashTelemetry.TruncateMessage(message); 544string? result = CrashTelemetry.TruncateMessage(message); 551CrashTelemetry telemetry = new(); 570CrashTelemetry telemetry = new() 580props[nameof(CrashTelemetry.StackCaller)].ShouldBe("at Microsoft.Build.BackEnd.RequestBuilder.BuildProject(String projectFile)"); 581props[nameof(CrashTelemetry.ExceptionMessage)].ShouldBe("All submissions not yet complete."); 587CrashTelemetry telemetry = new() 596props.ShouldNotContainKey(nameof(CrashTelemetry.StackCaller)); 602CrashTelemetry telemetry = new() 611props[nameof(CrashTelemetry.StackCaller)].ShouldBe("at Microsoft.Build.BackEnd.RequestBuilder.BuildProject(String projectFile)"); 623CrashTelemetry telemetry = new(); 640CrashTelemetry.ExtractFullStackTrace(ex).ShouldBeNull(); 654string? result = CrashTelemetry.ExtractFullStackTrace(ex); 656result!.Length.ShouldBeLessThanOrEqualTo(CrashTelemetry.MaxStackTraceLength); 663CrashTelemetry telemetry = new() 670props[nameof(CrashTelemetry.FullStackTrace)].ShouldBe(" at Foo.Bar()\n at Baz.Qux()"); 677string result = CrashTelemetry.SanitizeFilePathsInText(input); 686string result = CrashTelemetry.SanitizeFilePathsInText(input); 693CrashTelemetry telemetry = new() 712props[nameof(CrashTelemetry.ExitType)].ShouldBe("EndBuildHang"); 713props[nameof(CrashTelemetry.EndBuildWaitPhase)].ShouldBe("WaitingForSubmissions"); 714props[nameof(CrashTelemetry.EndBuildWaitDurationMs)].ShouldBe("60000"); 715props[nameof(CrashTelemetry.PendingSubmissionCount)].ShouldBe("3"); 716props[nameof(CrashTelemetry.SubmissionsWithResultNoLogging)].ShouldBe("1"); 717props[nameof(CrashTelemetry.ThreadExceptionRecorded)].ShouldBe("False"); 718props[nameof(CrashTelemetry.UnmatchedProjectStartedCount)].ShouldBe("2"); 719props[nameof(CrashTelemetry.LoggingServiceState)].ShouldBe("Initialized"); 720props[nameof(CrashTelemetry.LoggingEventQueueDepth)].ShouldBe("42"); 721props[nameof(CrashTelemetry.IsShuttingDown)].ShouldBe("False"); 722props[nameof(CrashTelemetry.IsCancellationRequested)].ShouldBe("False"); 723props[nameof(CrashTelemetry.WorkQueueDepth)].ShouldBe("5"); 724props[nameof(CrashTelemetry.SubmissionDetails)].ShouldBe("1:True:True:False:False;2:True:False:False:False;3:False:False:False:False"); 725props[nameof(CrashTelemetry.RegisteredLoggerTypeNames)].ShouldBe("Microsoft.Build.Logging.ConsoleLogger;Microsoft.Build.Logging.BinaryLogger"); 726props.ShouldNotContainKey(nameof(CrashTelemetry.ActiveNodeIds)); 727props.ShouldNotContainKey(nameof(CrashTelemetry.ActiveNodeDetails)); 733CrashTelemetry telemetry = new() 755props[nameof(CrashTelemetry.EndBuildWaitPhase)].ShouldBe("WaitingForNodes"); 756props[nameof(CrashTelemetry.EndBuildWaitDurationMs)].ShouldBe(30000L); 757props[nameof(CrashTelemetry.PendingSubmissionCount)].ShouldBe(0); 758props[nameof(CrashTelemetry.SubmissionsWithResultNoLogging)].ShouldBe(0); 759props[nameof(CrashTelemetry.ThreadExceptionRecorded)].ShouldBe(true); 760props[nameof(CrashTelemetry.UnmatchedProjectStartedCount)].ShouldBe(0); 761props[nameof(CrashTelemetry.LoggingServiceState)].ShouldBe("ShuttingDown"); 762props[nameof(CrashTelemetry.LoggingEventQueueDepth)].ShouldBe(0); 763props[nameof(CrashTelemetry.IsShuttingDown)].ShouldBe(true); 764props[nameof(CrashTelemetry.IsCancellationRequested)].ShouldBe(false); 765props[nameof(CrashTelemetry.WorkQueueDepth)].ShouldBe(0); 766props.ShouldNotContainKey(nameof(CrashTelemetry.SubmissionDetails)); 767props[nameof(CrashTelemetry.RegisteredLoggerTypeNames)].ShouldBe("Microsoft.Build.Logging.ConsoleLogger"); 768props[nameof(CrashTelemetry.ActiveNodeIds)].ShouldBe("2,3,5,7,9"); 769props[nameof(CrashTelemetry.EnableNodeReuse)].ShouldBe(true); 770props[nameof(CrashTelemetry.ActiveNodeDetails)].ShouldBe("2:10:MyProject.csproj;3:idle;5:12:OtherProject.csproj;7:idle;9:error"); 776CrashTelemetry telemetry = new() 783props.ShouldContainKey(nameof(CrashTelemetry.EndBuildWaitPhase)); 784props.ShouldNotContainKey(nameof(CrashTelemetry.PendingSubmissionCount)); 785props.ShouldNotContainKey(nameof(CrashTelemetry.ThreadExceptionRecorded)); 795CrashTelemetry telemetry = new() 824string? result = CrashTelemetry.TruncateMessage(message); 839string? result = CrashTelemetry.TruncateMessage(message); 851string result = CrashTelemetry.SanitizeFilePathsInText(input); 860string result = CrashTelemetry.SanitizeFilePathsInText(input); 868CrashTelemetry telemetry = new(); 902CrashTelemetry telemetry = new(); 917CrashTelemetry telemetry = new(); 928CrashTelemetry telemetry = new(); 950CrashTelemetry telemetry = new(); 968CrashTelemetry t1 = new(); 969CrashTelemetry t2 = new(); 986CrashTelemetry t1 = new(); 987CrashTelemetry t2 = new();