public void CanClearSavedTrackedRefs() { var point = new InstrumentationPoint(); point.TrackedMethodRefs = new[] { new TrackedMethodRef() { UniqueId = 12345 } }; Assert.IsNotNull(point.TrackedMethodRefs); point.TrackedMethodRefs = null; Assert.IsNull(point.TrackedMethodRefs); }
public void CanRetrieveSavedTrackedRefs() { var point = new InstrumentationPoint(); point.TrackedMethodRefs = new []{new TrackedMethodRef(){UniqueId = 12345}}; Assert.AreEqual(1, point.TrackedMethodRefs.Count()); Assert.AreEqual(12345, point.TrackedMethodRefs[0].UniqueId); }
public bool GetSequencePointsForFunction(string modulePath, int functionToken, out InstrumentationPoint[] sequencePoints) { sequencePoints = new InstrumentationPoint[0]; Class @class; var method = GetMethod(modulePath, functionToken, out @class); if (method !=null) { System.Diagnostics.Debug.WriteLine("Getting Sequence points for {0}({1})", method.Name, method.MetadataToken); var points = new List<InstrumentationPoint>(); points.AddRange(method.SequencePoints); if (points.Count == 0) points.Add(method.MethodPoint); sequencePoints = points.ToArray(); return true; } return false; }
private static void AddOrUpdateTrackingPoint(uint trackedMethodId, int amount, InstrumentationPoint point) { point._tracked = point._tracked ?? new List <TrackedMethodRef>(); var tracked = point._tracked.Find(x => x.UniqueId == trackedMethodId); if (tracked == null) { tracked = new TrackedMethodRef { UniqueId = trackedMethodId, VisitCount = amount }; point._tracked.Add(tracked); } else { tracked.VisitCount += amount; if (tracked.VisitCount < 0) { tracked.VisitCount = int.MaxValue; } } }