有没有办法在满足一定条件时进入调试模式?
例如,假设我想在以下行进入调试模式i == 1
变为真:
using System;
namespace ConditionalDebug
{
public class Program
{
public static void Main(string[] args)
{
var r = new Random();
var i = r.Next(2);
i += r.Next(2);
i += r.Next(2);
i += r.Next(2);
i += r.Next(2);
i = 1;
Console.WriteLine(i);
}
}
}
我知道可以设置条件断点,例如:
但我当然不能使用它,因为我必须为代码中的每一行添加一个条件断点,其中条件值可能会发生变化,这在实际应用程序中会变得非常混乱。
那么,有没有办法全局设置条件i == 1
这样调试器就会在满足条件的行上中断?
感谢您的帮助!
最简洁的答案是不'
长的答案是“不是真的,但有点”。您可以采取一些措施来接近您想要的行为。
- 您可以使用“监视”窗口并手动单步执行代码并查看它的变化。
- 您可以找到该变量的所有引用,并隔离所有可以更改变量并放置断点的语句。
- 您可以执行上述操作,但使用包装函数(或将其设为属性),并且仅通过该函数(或属性设置器)设置变量的值,然后您就可以在其中设置条件断点来比较旧/新值。
- 您可以在每一行上放置一个断点,并立即为所有行设置条件。您也许可以通过编写 VS 插件或宏来自动执行此操作。
- 这超出了我的能力范围 - 但我确信可以做一些非常复杂和令人惊叹的事情,比如编写自己的调试器并实现“每当 X 更改时就中断”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)