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

时间:2014-11-12 16:25:40

标签: c# debugging

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

private void Form1_Load(object sender, EventArgs e)
{
    Debug.Assert(false);
}
  1. 对于64位调试版本:当我点击Debug.Assert(false)并按重试按钮时,调试器会进入相应的源代码行。
  2. 对于32位调试版本:当我点击上面完全相同的行时,MessageBox会显示,但点击重试按钮不会中断
  3. Q1 :为什么行为首先不同?

    Q2 :如何让32位调试版本在点击重试时中断?

    修改

    • 我确实观察上述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位调试构建点击重试时,调试器会直接进入代码。与64位调试版本相比,包含Debug.Assert的行为黄色,而同一行的颜色为绿色。

1 个答案:

答案 0 :(得分:0)

今天,我安装了Microsoft Visual Studio Premium 2013(版本12.0.31101.00 Update 4)的Update 4,问题得以解决。对于32位和64位调试版本,调试器将停止重试

(无论出于何种原因,32位的Debug.Assert(false)行为黄色,64位的行为绿色。)