当一个类(或对象)的任何成员调用时中断
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当一个类(或对象)的任何成员调用时中断相关的知识,希望对你有一定的参考价值。
我正在调试我的应用程序。 (.Net Framework 4.6.2)我有一个类的实例,在执行特定函数时(在调试时)以某种方式被修改。我现在想了解访问和更改对象的内容。
void PerformCalculationWithObject(MyClass obj)
{
DoSomething(obj); // calls a lot of different operations
// which sometimes modify obj, and sometimes not.
}
但是这个类庞大而复杂,在函数下面调用了许多函数。
我知道我最大的问题是这个遗留代码缺乏良好的对象设计,这导致了这个问题。
所以问题是,如果有可能自动中断,那么类的某个成员(甚至可能只是特定的实例)被调用(没有放入大量的断点)。
答案
如果您使用的是VS 2019和.NET Core 3.0,则可以在监视窗口中的对象上设置数据断点。只需右键单击监视窗口中的表达式(在本例中为obj
添加监视),然后选择“值更改时中断”。
有关这方面的更多信息,请访问:https://devblogs.microsoft.com/visualstudio/break-when-value-changes-data-breakpoints-for-net-core-in-visual-studio-2019/
我很感激这可能对您调试遗留应用程序没有帮助,但也许它可以在调试时运行.NET Core 3,或者其他一些用户会觉得这个答案很有用。
另一答案
在这种情况下我通常做的事情是更改类成员变量,我怀疑使用get和set方法将其更改为属性,然后在set方法中添加断点。
以上是关于当一个类(或对象)的任何成员调用时中断的主要内容,如果未能解决你的问题,请参考以下文章