debugging Visual Studio调试器指向不可能出现此类异常的操作符

hmae6n7t  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(117)

我遇到了Visual Studio作为调试器的奇怪行为:当NullRefereneException发生时,调试器指向运算符,而这种异常永远不会出现。我的代码非常基本:

{
 for (int i = 0; i < employmentAccounts1.Count(); i++)
  employmentAccountsCommon[i] = (object)employmentAccounts1[i];
}

调试器指向运算符i++,请参见屏幕。

此时i变量的值为0,而不是null。考虑到此代码片段,i永远不会变为null。employmentAccounts1.Count()的值为3,错误发生在周期的第二次通过时(如前所述,当i仍然为0时)
这是什么这是Visual Studio中的一个错误吗?我第一次在Windows 7和Visual Studio 2008上遇到这种行为。假设这是一个错误,我安装了Windows 10和Visual Studio 2022社区版。但现在的行为似乎是相同的。所以,这是什么?如果这是一个错误,它是如何生存这么久的?如果这不是一个bug,那么这是什么,以及如何修改或解决这种行为?换句话说,如何强制Visual Studio指向正确的代码行?由于这种行为,我现在无法调试我的应用程序。有人能帮忙吗?

tjrkku2a

tjrkku2a1#

既然没有人愿意回答这个问题,我想这是我的责任。Visual Studio调试器指向错误语句作为错误源的情况不是错误,而是一个功能。因为当代码在优化编译时,很难确定正确的错误源。解决方案是,为了调试,编译代码而不优化。就是这样,如果我正确理解了我的受访者

相关问题