当一个类(或对象)的任何成员调用时中断

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方法中添加断点。

以上是关于当一个类(或对象)的任何成员调用时中断的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse - 在 Android 应用程序上引发未处理的异常时中断用户代码

为啥matlabcontrol在代理创建时中断调用线程?

—— iOS 运行时中方法的调用流程

碰撞时中断 libgdx 操作

c#当sql视图不存在时中断

Meteor build 在部署到 Heroku 时中断