繁体   English   中英

在局部变量值上设置Visual Studio(条件)断点

[英]Set Visual Studio (conditional) breakpoint on local variable value

我正在尝试调试一种方法,该方法除了其他方面之外,还将项添加到方法本地的列表中。

但是,每隔一段时间,列表大小就会被设置为零“中游”。 我想设置调试器在列表大小变为零时中断,但我不知道如何,并且会感谢有关如何执行此操作的任何指针。

谢谢。

在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
}

我可以为Visual Studio 2005提供部分答案。如果打开“断点”窗口(Alt + F9),您将获得断点列表。 右键单击所需的断点,然后选择“条件”。 然后把你想要的条件。

您已经建议了两个主要选项:1。条件断点2.检查错误值的代码,如果发生这种情况,则使用断点

第一个选项是最简单和最好的选择,但在大型循环中它很快就会很慢! 如果你循环100次千次迭代,唯一真正的选择是#2。 在选项#1中,cpu在每次迭代时都会进入调试器,然后它会评估条件,如果break的条件为false,它只会继续执行程序。 当它发生数千次时这很慢,如果你只循环1000次它实际上很慢(当然取决于硬件)

因为我怀疑你真的想要一个“全局”断点条件,如果满足某个条件(数组大小== 0)就应该破坏程序,不幸的是,根据我的知识,这不存在。 我已经制作了一个调试函数来检查条件,如果它是真的它做了一些没有意义的事情,我有一个断点设置(即选项2),然后我经常调用该函数,我怀疑原来的失败。 当系统中断时,您可以使用调用堆栈来识别故障位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM