Отладчик останавливается, когда нет точки останова VS2010

Недавно я изменил один из параметров в отладчике, и я думаю, что это то, что вызывает эту проблему, но я не могу "отменить" его... Я google и все хиты возвращаются с обратным ", почему отладчик не останавливается в точке останова

В любом случае кто-то может пролить свет?

EDIT: когда я нажимаю f5 в режиме отладки. Каждый раз. Он переходит в Program.cs и останавливается на

Application.SetCompatibleTextRenderingDefault(false);

в Main()

Ответ 1

Старый поток, который я знаю, Но я столкнулся с одной и той же проблемой. Все, что я сделал, это удалить все точки останова (Ctrl + Shift + F9 для меня), затем очистить мой проект запуска, а затем перестроить, а затем запустить. После этого он прекратил ломать, где не было точек останова.

Ответ 2

У меня возникла одна и та же проблема, однако моя проблема связана не с изменением варианта. Я думаю, что я нашел причину, но не решил ее исправить. У меня есть решение с несколькими проектами, задействованные проекты:

  • Бизнес-логика
  • Доступ к данным
  • Консольное приложение

В BL и DA у меня есть класс Credit.cs. Оба класса находятся в разных пространствах имен.

Когда я устанавливаю точку останова в строке 235 в BL.Credit.cs, тогда отладчик останавливается в строке 236 в DA.Credit.cs, даже если нет контрольных точек. Я думаю, что это ошибка в Visual Studio.

Когда я удаляю точку останова в BL, впоследствии не останавливается и в DA.

Я отправил ошибку, если вы хотите проголосовать https://connect.microsoft.com/VisualStudio/feedback/details/699804/debugger-stops-on-same-line-in-different-class-where-there-is-no-breakpoint

Ответ 3

Здесь обходной путь для поведения точек останова, активизирующихся в каждом классе с таким же именем, даже если полностью квалифицированные имена различны. После того, как вы установили точку останова, перейдите в окно Breakpoints (Debug | Windows | Breakpoints, если он еще не вставлен). Щелкните правой кнопкой мыши точку останова, которая запускает слишком много одинаковых классов (например, Project2.Action прерывается, когда вы хотите, чтобы Project1.Action имел точку останова) и выбор "Условие". Установите значение условия примерно так: this.GetType(). FullName == "Project1.Action".

Впоследствии это условие делает так, что выполнение только ломается в классе с правильным полным именем.

Ответ 4

Остановится ли оно, предоставив вам исключение или полностью прекратив выполнение вашего приложения? Если у вас нет кода UnHandledExceptionHandler в вашем коде, он может выглядеть так, как будто он просто останавливается, но на самом деле у вас есть исключение.

UPDATE: Вот как ваш метод 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();
    }