lar*_*moa 22 .net breakpoints visual-studio visual-studio-debugging
我经常发现自己在代码中的某处设置了一个断点,并在遇到这个断点时手动启用一个或多个断点.典型的情况是我在调试单元测试时并不关心前面的测试.
void testAddZeros()
{
Number a(0);
Number b(0);
Number result = a.add(b);
assert((a + b) == Number(0))
}
void testAddOnes()
{
Number a(1);
Number b(1);
Number result = a.add(b);
assert((a + b) == Number(2));
}
void testAddNegativeNumber()
{
Number a(1);
Number b(-1)
Number result = a.add(b);
assert((a + b) == Number(0));
}
Run Code Online (Sandbox Code Playgroud)
想象一下,如果testAddZeros()并且testAddOnes()运行良好,但是testAddNegativeNumber().在这种情况下,设置断点Number result = a.add(b);将是开始调试的自然场所.现在想象一下,错误位于内部深处Number::add,所以我们并没有真正对早期发生的事情感兴趣Numbers::add.我想要做的是在内部设置一个断点Numbers::add,只有当我在testAddNegativeNumber()-test 中时才触发.
在遇到断点B时有没有办法自动启用断点A?
ale*_*lex 24
即使不更改代码,也可以通过使用某个全局存储来保存将启用相关断点的标记,从而获得相关断点.
我发现的最容易访问的存储之一是应用程序域自定义属性.它们可以通过System.AppDomain.CurrentDomain.GetData和SetData方法访问.
因此,在第一个断点上,您可以使用以下命令定义"命中时"设置:
{System.AppDomain.CurrentDomain.SetData( "破发",真)}

在依赖断点上,将命中条件设置为:
System.AppDomain.CurrentDomain.GetData("break")!= null
| 归档时间: |
|
| 查看次数: |
1605 次 |
| 最近记录: |