为什么Visual Studio调试器会跳过有效行?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么Visual Studio调试器会跳过有效行?相关的知识,希望对你有一定的参考价值。

我正在使用Visual Studio 2017中的VB.NET程序。调试器每次都会完全跳过一段代码。我已经重写了十几次试图让它工作。代码优化已关闭。我尝试删除解决方案文件夹和子文件夹中的每个文件,除了源文件和从头开始重建。没变。谷歌没有给我一个解决方案。

enter image description here在这种情况下,ClientList有两个元素,所以.Count是2。 我想从最后一个元素遍历到第一个元素,所以我在第209行使用for循环。 在调试时,我验证计数是2,因此调试器应该通过for循环两次。但在第209行之后,它直接跳到第228行。

我包含了第二个循环用于比较,因为它总是调试很好,即使它正在做同样的事情,迭代ClientList的元素。

有人能为我解决这个问题吗?我花了大部分时间在这上面,在我有解决方案之前无法再进一步。

答案

Step -1添加到For语句中,它应该按预期工作。

For ClientIndex As Integer = ClientList.Count -1 To 0 Step -1

摘自documentation

step的默认值为1。

意味着,没有Step -1,循环计数器的值会递增,因此循环永远不会运行,因为1ClientList.Count-1)已经大于0

以上是关于为什么Visual Studio调试器会跳过有效行?的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 跳过代码行

如何确定为啥 Visual Studio 在构建解决方案时可能会跳过项目

Visual Studio 2015:调试器不会跳过

Visual Studio不会调试到引用的DLL(来自相同的解决方案)

Visual Studio调试技巧---Output窗口输出定位

在 Visual Studio 2012 中调试 C++ 代码时跳过 STL 代码?