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);
        }
Example #3
0
 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;
                }
            }
        }