public static void TraceInMemory(int lid, TraceType traceType, Guid componentGuid, int traceTag, long id, string format, object[] arguments) { if (arguments == null) { return; } MemoryTraceBuilder memoryTraceBuilder = ExTraceInternal.GetMemoryTraceBuilder(); bool flag = false; try { if (!memoryTraceBuilder.InsideTraceCall) { memoryTraceBuilder.BeginEntry(traceType, componentGuid, traceTag, id, format); for (int i = 0; i < arguments.Length; i++) { ExTraceInternal.AddTraceArgument(memoryTraceBuilder, arguments[i]); } memoryTraceBuilder.EndEntry(); } flag = true; } finally { if (!flag) { memoryTraceBuilder.Reset(); } } }
public static void TraceInMemory <T0, T1, T2>(int lid, TraceType traceType, Guid componentGuid, int traceTag, long id, string format, T0 argument0, T1 argument1, T2 argument2) { MemoryTraceBuilder memoryTraceBuilder = ExTraceInternal.GetMemoryTraceBuilder(); bool flag = false; try { if (!memoryTraceBuilder.InsideTraceCall) { memoryTraceBuilder.BeginEntry(traceType, componentGuid, traceTag, id, format); memoryTraceBuilder.AddArgument <T0>(argument0); memoryTraceBuilder.AddArgument <T1>(argument1); memoryTraceBuilder.AddArgument <T2>(argument2); memoryTraceBuilder.EndEntry(); } flag = true; } finally { if (!flag) { memoryTraceBuilder.Reset(); } } }
public IEnumerable <TraceEntry> GetTraces() { MemoryTraceBuilder memoryTraceBuilder = ExTraceInternal.GetMemoryTraceBuilder(); if (memoryTraceBuilder == null) { return(new TraceEntry[0]); } return(memoryTraceBuilder.GetTraces()); }
public static List <KeyValuePair <TraceEntry, List <object> > > GetMemoryTrace() { MemoryTraceBuilder memoryTraceBuilder = ExTraceInternal.GetMemoryTraceBuilder(); if (memoryTraceBuilder != null) { return(memoryTraceBuilder.GetTraceEntries()); } return(null); }
public void TraceOperationCompletedAndUpdateContext(long id) { if (!ExTraceConfiguration.Instance.InMemoryTracingEnabled) { return; } MemoryTraceBuilder memoryTraceBuilder = ExTraceInternal.GetMemoryTraceBuilder(); this.AddOperationCompletedMarker(memoryTraceBuilder, id); int startIndex = memoryTraceBuilder.FindLastEntryIndex(2, TroubleshootingContext.markerEntry.TraceType, TroubleshootingContext.markerEntry.TraceTag, TroubleshootingContext.markerEntry.ComponentGuid, TroubleshootingContext.markerEntry.FormatString); lock (this) { if (this.memoryTraceBuilder == null) { this.memoryTraceBuilder = new MemoryTraceBuilder(1000, 128000); } memoryTraceBuilder.CopyTo(this.memoryTraceBuilder, startIndex); } }
public static void TraceInMemory(int lid, TraceType traceType, Guid componentGuid, int traceTag, long id, string message) { MemoryTraceBuilder memoryTraceBuilder = ExTraceInternal.GetMemoryTraceBuilder(); bool flag = false; try { if (!memoryTraceBuilder.InsideTraceCall) { memoryTraceBuilder.BeginEntry(traceType, componentGuid, traceTag, id, message); memoryTraceBuilder.EndEntry(); } flag = true; } finally { if (!flag) { memoryTraceBuilder.Reset(); } } }
private void ReportProblem(MemoryTraceBuilder contextTraceBuilder, Exception exception, string functionName, bool isExceptionReport, bool isExceptionReportTerminating, bool verbose) { using (TempFileStream tempFileStream = TempFileStream.CreateInstance("Traces_", false)) { using (StreamWriter streamWriter = new StreamWriter(tempFileStream)) { bool addHeader = true; if (contextTraceBuilder != null) { lock (this) { contextTraceBuilder.Dump(streamWriter, addHeader, verbose); } addHeader = false; } MemoryTraceBuilder memoryTraceBuilder = ExTraceInternal.GetMemoryTraceBuilder(); if (memoryTraceBuilder != null) { memoryTraceBuilder.Dump(streamWriter, addHeader, verbose); } streamWriter.Flush(); } StringBuilder stringBuilder = new StringBuilder(1024); TroubleshootingContext.DumpExceptionInfo(exception, stringBuilder); if (TroubleshootingContext.IsTestTopology()) { string path = ExWatson.AppName + "_" + DateTime.UtcNow.ToString("yyyyMMdd_hhmmss") + ".trace"; try { File.Copy(tempFileStream.FilePath, Path.Combine(Path.Combine(Environment.GetEnvironmentVariable("SystemDrive"), "\\dumps"), path)); } catch { } } if (exception != TroubleshootingContext.FaultInjectionInvalidOperationException) { if (isExceptionReport) { WatsonExtraFileReportAction watsonExtraFileReportAction = null; try { watsonExtraFileReportAction = new WatsonExtraFileReportAction(tempFileStream.FilePath); ExWatson.RegisterReportAction(watsonExtraFileReportAction, WatsonActionScope.Thread); ExWatson.SendReport(exception, isExceptionReportTerminating ? ReportOptions.ReportTerminateAfterSend : ReportOptions.None, null); goto IL_152; } finally { if (watsonExtraFileReportAction != null) { ExWatson.UnregisterReportAction(watsonExtraFileReportAction, WatsonActionScope.Thread); } } } ExWatson.SendTroubleshootingWatsonReport("15.00.1497.012", this.location, "UnexpectedCondition:" + exception.GetType().Name, exception.StackTrace, functionName, stringBuilder.ToString(), tempFileStream.FilePath); IL_152: File.Delete(tempFileStream.FilePath); } } }