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

问题描述 投票:0回答:2

我正在调试我的应用程序。 (.Net Framework 4.6.2)我有一个类的实例,在执行特定函数时(在调试时)以某种方式被修改。我现在想了解访问和更改对象的内容。

 void PerformCalculationWithObject(MyClass obj)
 {
      DoSomething(obj); // calls a lot of different operations
                        // which sometimes modify obj, and sometimes not.
 }

但是这个类庞大而复杂,在函数下面调用了许多函数。

我知道我最大的问题是这个遗留代码缺乏良好的对象设计,这导致了这个问题。

所以问题是,如果有可能自动中断,那么类的某个成员(甚至可能只是特定的实例)被调用(没有放入大量的断点)。

c# .net visual-studio debugging .net-framework-version
2个回答
1
投票

如果您使用的是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,或者其他一些用户会觉得这个答案很有用。


0
投票

在这种情况下我通常做的事情是更改类成员变量,我怀疑使用get和set方法将其更改为属性,然后在set方法中添加断点。

© www.soinside.com 2019 - 2024. All rights reserved.