2014-10-31 193 views
1

我的visual studio 2012停止显示调试器异常。我的意思是这个对话框显示了我的确切例外和行:http://i.msdn.microsoft.com/dynimg/IC286574.jpgvisual studio 2012调试器不起作用

在例如,如果我运行下面的Visual Studio代码:

using System; 
using System.Windows.Forms; 

namespace debugger_test 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     public void Form1_Load(object sender, EventArgs e) 
     { 
      int zero = 0; 
      int a = 1/zero; // it hangs on this line 
      MessageBox.Show("this messagebox is never shown"); 
     } 
    } 
} 

那么它不返回任何异常。它刚刚启动,执行int a = 1/zero;后没有代码。

但是,当我单独运行相同的程序作为编译.exe然后它返回这种异常:http://i.msdn.microsoft.com/dynimg/IC8596.gif在这种情况下关于DivideByZeroException。

  • 它发生在任何项目。
  • 修复并重新安装visual studio没有解决它。尽管重新安装后仍保留了一些VS设置。
  • 我不知道任何可能导致它的变化,我不确定它何时开始发生。

如何从Visual Studio中的第一张图片再次获得调试器?谢谢。

编辑:Sascha的建议并没有完全解决我的问题。 我不知道如何抛出try {}内部的异常,但抛出一个不在try {}内部的异常。

以下代码要么只抛出一个异常,要么只挂在int gg = 1/a;行,不管是否使用try/catch或不使用。

public void Form1_Load(object sender, EventArgs e) 
{ 
    int zero = 0; 
    int a = 1/zero; // this line should throw an exception 
    MessageBox.Show("to be never shown"); 
} 

__

public void Form1_Load(object sender, EventArgs e) 
{ 
    try 
    { 
     int zero = 0; 
     int a = 1/zero; 
     MessageBox.Show("to be never shown"); 
    } 
    catch 
    { 
     MessageBox.Show("catched"); // it should show this messagebox 
    } 
} 

任何想法如何正确设置它?谢谢。

回答

0

这似乎已经解决了我到目前为止。

  • 在注册表编辑器,找到以下注册表子项:HKLM \ SOFTWARE \微软\的Windows NT \ CURRENTVERSION \图像文件执行选项
  • 创建DWORD值的注册表项。
  • 命名新的注册表项DisableUserModeCallbackFilter。
  • 的DisableUserModeCallbackFilter注册表项的值设置为1

发现有http://support.microsoft.com/kb/976038/en-us

而且它必须被编译为发布。荒谬。

2

看一看关于已知问题这个问题上x64 systems

这是64位操作系统平台的已知问题。原因在于,64位OS内核不允许通过核心模式 堆栈的用户模式异常。这个例外被OS轻易吞噬。发生在 FormLoad处理程序中,因为它在OS回调中被调用。 32位操作系统 不这样做,所以它不repro那里。

操作系统小组正在调查相关问题。与此同时,你做 必须解决这个问题。打开“停止第一次机会 异常”将使调试器停止在这种情况下。但 确实使调试器停止非常频繁,所以你可能想要做 只有这样,当你发现一个问题

这是Visual Studio中的一个bug /限制当你的电脑是64位,这种情况发生异常发生在表单加载。

+0

啊哈。我通过调试,例外,检查所有工作,好吧。感谢您为我指出正确的方向! – LukAss741 2014-10-31 01:10:30