Отладчик останавливается, когда нет точки останова VS2010 - PullRequest
11 голосов
/ 26 октября 2011

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

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

РЕДАКТИРОВАТЬ: когда я нажимаю клавишу f5 в режиме отладки.Каждый раз.Он входит в Program.cs и останавливается на

Application.SetCompatibleTextRenderingDefault(false);

в Main()

Ответы [ 4 ]

26 голосов
/ 16 марта 2012

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

5 голосов
/ 08 ноября 2011

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

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

В 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

4 голосов
/ 01 июля 2013

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

После этого условие делает так, что выполнение прерывается только в классе с правильной полной квалификацией.имя.

0 голосов
/ 26 октября 2011

Останавливается ли оно, давая вам исключение, или оно просто полностью останавливает выполнение вашего приложения? Если в вашем коде нет 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();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...