我知道我们有Watch监视调试模式中的变量,您可以更改,删除或分配给另一个对象的变量。
但我的意思是监视内存中的一个对象状态。
假设我有一个接收对象并分配到变量
的方法即:
void DoSomething(object anObject){
object tempObject = anObject;
}
此方法将被调用超过1次。
如果我在此tempObject上使用Watch,则Watch中的tempObject将在新分配的对象值时继续更改。
我感兴趣的是,只需要观察这个anObject。说到第2次调用这个方法,我发现这个anObject有centain参数不正确,我想跟踪这个对象,看看这个不正确的参数什么时候会改回正确的参数。 (甚至超出范围)。
我该怎么做?或者是否可以在Visual Studio中执行此操作?
因为现在我遇到了类似的问题,我有一个cmain对象,我看到它被处理掉了,但不知怎的,某个地方正在被再次使用,而且它的说法没有被处理掉。使用Watch我不知道这是否与我一直在观看的对象相同。
我希望我明白这一点。
答案 0 :(得分:1)
尝试对相关对象持WeakReference并观看。从那里,您可以看到WeakReference
的目标和相关对象实际上是否是同一个对象。
答案 1 :(得分:0)
只要有强烈的引用,对象就不会被垃圾收集器处理掉。某些代码可能正在调用对象上的Dispose,或者您可能正在使用弱引用。
使用Son of Strike调试扩展,您可以随时跟踪对象的GC根。我不确定我们是否可以收到事件通知。