How to find instance from object retention graph?
ScottLangham
Posts: 6
In the instance list I've found an instance that I was expecting should have been cleaned up.
So, I looked at the object retention graph for this instance. There's an interesting instance in the list of instances that reference the leaked object. I'd like to look at the properties of this instance. So, I clicked on the interesting instance to select it on the graph, and then I switched back to the instance list.
I'm expecting the instance I selected on the graph to be selected in the instance list so that I can look at it's properties in the hopes of identifying it from the properties, but it's not selected. There are hundreds of instances in the list.
How, from an Object Retention Graph do I view the properties of a particular instance I've found on the graph?
So, I looked at the object retention graph for this instance. There's an interesting instance in the list of instances that reference the leaked object. I'd like to look at the properties of this instance. So, I clicked on the interesting instance to select it on the graph, and then I switched back to the instance list.
I'm expecting the instance I selected on the graph to be selected in the instance list so that I can look at it's properties in the hopes of identifying it from the properties, but it's not selected. There are hundreds of instances in the list.
How, from an Object Retention Graph do I view the properties of a particular instance I've found on the graph?
Comments
Hope that helps,
Developer,
Red Gate .NET Tools
What you described is what I thought should happen too, but it doesn't.
In visual studio created a C# Windows Application and changed Form1.cs to this:
namespace WindowsApplication1
{
class A
{
public A(string n)
{
name = n;
}
string name;
public B b;
};
class B
{
};
public partial class Form1 : Form
{
A a1 = new A("a1");
A a2 = new A("a2");
A a3 = new A("a3");
A a4 = new A("a4");
A a5 = new A("a5");
public Form1()
{
InitializeComponent();
a3.b = new B();
}
}
}
Then followed these steps:
* Run this app with the memory profiler
* Capture a snapshot
* Go to the class view
* Select the 'B' class and go to the instance view
* There should only be one instance, select it and go to the object retention graph
* There is an A object referencing the B instance. Select the A object, right click and choose ' Show object retention graph for this A'.
* Now, press on the 'Instance List' button to switch back to that view.
=> No row seems to be selected. The top row has the '+' icon to the left of the class name. I don't think that means that row is selected though. If I press on the + to see the properties of that instance, it says it's name is "a1".
=> The instance that should be referencing the B instance should have "a3" as its name. I don't appear to be able to find this information from ANTS memory profiler.
Any further help would be appreciated.
-Regards,
Scott
Thanks,
Developer,
Red Gate .NET Tools
Developer,
Red Gate .NET Tools