当没有断点VS2010时,调试器将停止

本文关键字:调试器 断点 VS2010 | 更新日期: 2023-09-27 18:12:19

我最近更改了调试器中的一个选项,我认为这就是导致这个问题的原因,但我似乎无法"撤消"它……我搜索了一下,所有点击结果都是相反的"为什么调试器没有在断点上停止">

无论如何,有人能透露一些信息吗?

编辑:当我在调试模式下按f5时。每次。它进入Program.cs并在上停止

Application.SetCompatibleTextRenderingDefault(false);

Main()

当没有断点VS2010时,调试器将停止

我知道旧线程,但我刚刚遇到了同样的问题。我所做的只是删除所有断点(对我来说是Ctrl+Shift+F9(,然后对我的启动项目进行清理,然后进行重建,然后运行。之后,它在没有断点的地方停止了中断。

我刚刚遇到了同样的问题,但我的问题不是因为选项更改。我想我已经找到了原因,但没有解决方案。我有一个解决方案,有多个项目,涉及的项目是:

  • 业务逻辑
  • 数据访问
  • 控制台应用程序

在BL和DA中,我都有一个名为Credit.cs的类。这两个类都在不同的名称空间中。

当我在BL.Credit.cs中的第235行设置断点时,即使没有设置断点,调试器也会在DA.Credit.c中的第236行停止。我认为这是Visual Studio中的一个错误。

当我删除BL中的断点时,它随后也不会在DA中停止。

如果你想投票,我已经提交了一个bughttps://connect.microsoft.com/VisualStudio/feedback/details/699804/debugger-stops-on-same-line-in-different-class-where-there-is-no-breakpoint

这里有一个解决方法,可以解决在具有相同名称的每个类中激活断点的行为,即使完全限定的名称不同。设置断点后,转到"断点"窗口(调试|窗口|断点,如果尚未打开(。右键单击在太多同名类中激发的断点(例如Project2.Action在您只希望Project1.Action具有断点时会中断(,然后选择"Condition"。将条件值设置为类似这样的值:this。GetType((.FullName=="Project1.Action".

此后,该条件使得执行仅在具有正确完全限定名称的类上中断。

它是通过给您一个异常来停止,还是只是完全停止应用程序的执行?如果您的代码中没有UnHandledExceptionHandler,它可能看起来只是停止,但实际上您有一个异常。

更新:以下是您的Main方法应该是什么样子来捕获未处理的异常,因为try/catch并不总是有效的。

    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
        Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }
    static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
    {
        throw new NotImplementedException();
    }
    static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
    {
        // You should/MAY see an error right here.
        throw new NotImplementedException();
    }