我目前正在调试我的应用程序。 (.Net Framework 4.6.2) 我有一个类的实例,在执行特定功能时(调试时)会以某种方式被修改。我现在想了解,什么访问并更改了对象。
void PerformCalculationWithObject(MyClass obj)
{
DoSomething(obj); // calls a lot of different operations
// which sometimes modify obj, and sometimes not.
}
但是该类又大又复杂,在该函数的下方调用了许多函数。
我知道我最大的问题是此旧代码中缺乏良好的对象设计,从而导致了这个问题。
所以问题是,如果存在自动中断的可能性,则在调用该类的某个成员(甚至只是特定于fron的实例)时(不放置大量的断点)
答案 0 :(得分:1)
如果您使用的是VS 2019和.NET Core 3.0,则可以从监视窗口在对象上设置数据断点。只需在监视窗口中右键单击一个表达式(在本例中为obj
添加监视),然后选择“值更改时中断”。
我知道这可能无法为您提供帮助,因为您正在调试旧版应用程序,但也许它可以在调试时运行.NET Core 3,否则其他用户会发现此答案很有用。
答案 1 :(得分:0)
在这种情况下,我通常要做的就是使用get和set方法将类成员变量更改为属性,然后将其设置为set方法。