Как остановить Visual Studio от перехода в program.cs на (Break All) кнопку паузы - PullRequest
4 голосов
/ 21 ноября 2008

Это действительно раздражает.

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new mainForm()); <-- pausing visual studio breaks here.

Спасибо, ребята.

Ответы [ 6 ]

3 голосов
/ 21 ноября 2008

[DebuggerStepThrough] в функции Main программы.cs может помочь.

3 голосов
/ 21 ноября 2008

@ sramey Вы уверены, что пауза всегда прерывается на указанной строке? Если я рискну предположить здесь, я думаю, что когда вы нажимаете кнопку паузы, ваше приложение бездействует, и программа проводит большую часть своего времени в цикле сообщений Win32, абстрагированном Application.Run (). Следовательно, существует высокая вероятность того, что VS прервет выполнение основного потока.

Я думаю, что нажатие паузы не всегда лучший способ отладки. Вы должны сделать обоснованные предположения о проблемных областях и установить точки останова в соответствующих методах (таких как Конструкторы, вызовы API и т. Д.)

Вам нужна дополнительная информация о том, чего вы пытаетесь достичь здесь.

0 голосов
/ 01 мая 2018

Нажатие Ctrl + F4 закроет вновь открытую вкладку Program.cs. Не решение, но оно быстро от него избавляется.

0 голосов
/ 02 мая 2013

Полагаю, вы пытаетесь внести изменения (Редактировать и продолжить) в фрагмент кода, который может быть запущен или не выполняться в данный момент. Если он не запущен, установка точки останова не приведет вас туда. Когда вы нажимаете паузу, VS открывает Program.cs (потому что большую часть времени приложение бездействует и сидит здесь) и скрывает код, который вы хотели изменить.

Отладчик делает то, для чего предназначен. К сожалению, нет настроек, позволяющих изменить это поведение и разрешить исключение (выберите Инструменты> Параметры> Отладка). Самое простое, что нужно сделать, это закрыть Program.cs, и вы окажетесь именно там, где вы работаете, прежде чем нажать паузу.

В качестве альтернативы, напишите приложение, которое работает в фоновом режиме и отслеживает активность VS, и когда оно обнаруживает, что Program.cs открыт, закройте его. Для этого вам понадобятся функции API из user32, такие как FndWindow, GetWindowText и т. Д. Существует множество примеров кода, показывающих, как «шпионить» за другим приложением и контролировать его.

0 голосов
/ 21 ноября 2008

Принимая во внимание предыдущие комментарии, вы можете установить точку останова, где вы хотите, чтобы ваше приложение остановилось.

Обычно я делаю это, переходя туда, где хочу остановить отладчик, затем нажимая F9. Вы также можете нажать на левое поле. Есть и другие способы.

Вы также можете настроить точки останова так, чтобы они останавливались только при выполнении определенного условия (например, i == 0).

У Microsoft есть руководство по отладке в Visual Studio .

0 голосов
/ 21 ноября 2008

Отладчик будет останавливаться там только в том случае, если ваше приложение находится в состоянии ожидания (т.е. оно фактически выполняет Application.Run).

Если вы действительно не хотите заканчивать, вы можете попробовать использовать атрибут 'DebuggerNonUserCode' в методе, который вызывает Application.Run, но я бы не рекомендовал его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...