/// <summary> /// Add one to the counter for the type specified by object o. /// </summary> /// <param name="o"></param> public static void Add(object o) { if (Enabled == false) { return; } lock (instancetable) { System.Diagnostics.StackTrace ST = new System.Diagnostics.StackTrace(); System.Diagnostics.StackFrame SF; int IDX = 0; StringBuilder sb = new StringBuilder(); do { SF = ST.GetFrame(IDX); if (SF != null) { if (sb.Length == 0) { sb.Append(SF.GetMethod().DeclaringType.FullName + " : " + SF.GetMethod().Name); } else { sb.Append("\r\n"); sb.Append(SF.GetMethod().DeclaringType.FullName + " : " + SF.GetMethod().Name); } } ++IDX; }while(SF != null && IDX != 7); string name = o.GetType().FullName; if (DataTable.ContainsKey(name) == false) { DataTable[name] = new ArrayList(); } InstanceStruct iss = new InstanceStruct(); iss.WR = new WeakReference(o); iss.StackList = sb.ToString(); ((ArrayList)DataTable[name]).Add(iss); if (tracker != null) { tracker.UpdateDisplayEntry(name); tracker.statusBar.BeginInvoke(new TrackerHandler(HandleTracker), new object[1] { o.GetType().FullName }); } } }
public static void Add(object o) { if (Enabled) { lock (instancetable) { StackFrame frame; StackTrace trace = new StackTrace(); int index = 0; StringBuilder builder = new StringBuilder(); do { frame = trace.GetFrame(index); if (frame != null) { if (builder.Length == 0) { builder.Append(frame.GetMethod().DeclaringType.FullName + " : " + frame.GetMethod().Name); } else { builder.Append("\r\n"); builder.Append(frame.GetMethod().DeclaringType.FullName + " : " + frame.GetMethod().Name); } } index++; }while ((frame != null) && (index != 7)); string fullName = o.GetType().FullName; if (!DataTable.ContainsKey(fullName)) { DataTable[fullName] = new ArrayList(); } InstanceStruct struct2 = new InstanceStruct(); struct2.WR = new WeakReference(o); struct2.StackList = builder.ToString(); ((ArrayList)DataTable[fullName]).Add(struct2); if (tracker != null) { tracker.UpdateDisplayEntry(fullName); tracker.statusBar.BeginInvoke(new TrackerHandler(InstanceTracker.HandleTracker), new object[] { o.GetType().FullName }); } } } }
/// <summary> /// Add one to the counter for the type specified by object o. /// </summary> /// <param name="o"></param> public static void Add(object o) { if (Enabled == false) return; lock (instancetable) { System.Diagnostics.StackTrace ST = new System.Diagnostics.StackTrace(); System.Diagnostics.StackFrame SF; int IDX = 0; StringBuilder sb = new StringBuilder(); do { SF = ST.GetFrame(IDX); if (SF!=null) { if (sb.Length==0) { sb.Append(SF.GetMethod().DeclaringType.FullName + " : " + SF.GetMethod().Name); } else { sb.Append("\r\n"); sb.Append(SF.GetMethod().DeclaringType.FullName + " : " + SF.GetMethod().Name); } } ++IDX; }while(SF!=null&&IDX!=7); string name = o.GetType().FullName; if (DataTable.ContainsKey(name)==false) { DataTable[name] = new ArrayList(); } InstanceStruct iss = new InstanceStruct(); iss.WR = new WeakReference(o); iss.StackList = sb.ToString(); ((ArrayList)DataTable[name]).Add(iss); if (tracker != null) { tracker.UpdateDisplayEntry(name); tracker.statusBar.BeginInvoke(new TrackerHandler(HandleTracker),new object[1]{o.GetType().FullName}); } } }
/// <summary> /// Add one to the counter for the type specified by object o. /// </summary> /// <param name="o"></param> public static void Add(object o) { if (Enabled == false) return; lock (Instancetable) { var st = new StackTrace(); StackFrame sf; var idx = 0; var sb = new StringBuilder(); do { sf = st.GetFrame(idx); if (sf != null) { if (sb.Length == 0) { var declaringType = sf.GetMethod().DeclaringType; if (declaringType != null) sb.Append(declaringType.FullName + " : " + sf.GetMethod().Name); } else { sb.Append("\r\n"); var declaringType = sf.GetMethod().DeclaringType; if (declaringType != null) sb.Append(declaringType.FullName + " : " + sf.GetMethod().Name); } } ++idx; } while (sf != null && idx != 7); var name = o.GetType().FullName; if (DataTable.ContainsKey(name) == false) DataTable[name] = new ArrayList(); var iss = new InstanceStruct { WR = new WeakReference(o), StackList = sb.ToString() }; ((ArrayList) DataTable[name]).Add(iss); if (_tracker == null) return; _tracker.UpdateDisplayEntry(name); _tracker.statusBar.BeginInvoke(new TrackerHandler(HandleTracker), o.GetType().FullName); } }