我正在尝试调试一个方法,该方法除了其他功能之外,还将项添加到方法本地的列表中。
然而,每隔一段时间,列表大小就会被设置为零“中游”。我想设置调试器在列表大小变为零时中断,但我不知道如何,并且会感谢有关如何执行此操作的任何指示。
感谢。
答案 0 :(得分:5)
为什么不使用条件断点?
答案 1 :(得分:3)
在C#中
if(theList.Count == 0){
//do something meaningless here .e.g.
int i = 1; // << set your breakpoint here
}
在VB.NET中
If theList.Count = 0 Then
'do something meaningless here .e.g.
Dim i = 1; ' << set your breakpoint here
End If
为了完整起见,这里是C ++版本:
if(theList->Count == 0){
//do something meaningless here .e.g.
int i = 1; // << set your breakpoint here
}
答案 2 :(得分:0)
我可以为Visual Studio 2005提供部分答案。如果打开“断点”窗口(Alt + F9),您将获得断点列表。右键单击所需的断点,然后选择“条件”。然后放入你想要的状态。
答案 3 :(得分:0)
您已经建议了两个主要选项: 1.条件断点 2.检查错误值的代码,如果发生则检查断点
第一个选项是最简单和最好的选择,但在大型循环中它很快就会很慢!如果你循环100次千次迭代,唯一真正的选择是#2。在选项#1中,cpu在每次迭代时都会进入调试器,然后它会评估条件,如果break的条件为false,它只会继续执行程序。当它发生数千次时这很慢,如果你只循环1000次它实际上很慢(当然取决于硬件)
因为我怀疑你真的想要一个“全局”断点条件,如果满足某个条件(数组大小== 0)就应该破坏程序,遗憾的是,根据我的知识这不存在。我已经制作了一个调试函数来检查条件,如果它是真的它做了一些没有意义的事情,我有一个断点设置(即选项2),然后我经常调用该函数我怀疑原始失败。当系统中断时,您可以使用调用堆栈来识别错误的位置。