Debug.Assert / Retry, 32位和64位有不同的行为

4

我正在使用一个现成的WindowsFormsApplication。 我唯一添加的是如下所示的Form1_Load事件处理程序(Visual Studio Premium 2013):

private void Form1_Load(object sender, EventArgs e)
{
    Debug.Assert(false);
}
  1. 对于64位调试版本:当我点击Debug.Assert(false)并且按下Retry按钮时,调试器会中断到相应的源代码行。
  2. 对于32位调试版本:当我命中与上述完全相同的行时,消息框会弹出,但点击Retry按钮不会中断

Q1 :为什么行为本来就不同?

Q2 :我该怎么做才能使32位调试版本在点击 Retry 时中断?

编辑

  • 在Windows 8.1,Visual Studio Premium 2013(版本12.0.30723.00 Update 3)上观察到如上所述的行为。
  • 在Windows 8.1,Visual Studio Premium 2013(版本12.02.21005.1 REL)上没有观察到如上所述的行为。特别是,对于32位调试版本,单击 Retry 可以直接进入代码。与64位调试构建不同的是,包含 Debug.Assert 的行被着成了黄色。

2
有趣的是我昨天读到了这篇文章 - James Thorpe
1个回答

0
今天,我安装了 Microsoft Visual Studio Premium 2013(版本12.0.31101.00 Update 4)的更新4,并且问题已经解决。调试器在32位和64位debug-builds上都会停止在重试上。
(由于某种原因,包含32位Debug.Assert(false)的行是黄色的,而包含64位的是绿色的。)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接