Подтвердить что ты не робот

Есть ли способ разбить следующую строку кода, выполняемую в Visual Studio?

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

В прошлом мне приходилось отслеживать класс, который обрабатывает это конкретное событие, и поставить точку останова на строке, которая, как мне кажется, должна быть удалена. Часто мне требуется несколько попыток, прежде чем я, наконец, найду правильный класс... особенно если класс - это пользовательский элемент управления, который где-то похож...

Поэтому мне стало интересно, есть ли способ заставить Visual Studio сломаться на следующей строке кода, выполняемой после нажатия элемента (например, кнопки) на странице aspx. Я знаю, что есть способ сломать любое исключение, которое бросается, поэтому я думаю, может быть, есть что-то похожее, которое могло бы мне помочь.

Если такой возможности нет, возможно, кто-то может предложить лучший способ быстро найти класс, который я хочу отлаживать...

4b9b3361

Ответ 1

Вы пробовали кнопку Debug > Break All ( "пауза" )? (Ctrl + Break)

Debug > Break All

Как правило, он разбивается где-то довольно низко в стеке, например, на Show() для вашей основной формы в приложении WinForms, но если вы затем сделаете шаг, чтобы пройти мимо этого, он будет часто работать довольно хорошо для этого типа вещи.

Ответ 2

Вы ищете Step Into (F11) или Step Over (F10)?

- Изменить

Вы также знаете о Call Stack окне? Это может помочь вам определить ваше местоположение и что происходит.

Ответ 3

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

Ответ 4

Отладка → Исключения

Отметьте бросок для Исключения CLR.

ИЗМЕНИТЬ

Скорее всего, вы имеете исключение CLR. Используя этот метод, отладчик всегда будет ломаться, когда возникает исключение. Это очень удобно по сравнению с чтением трассировки стека.

Ответ 5

Некоторые идеи:

  • Если вы используете согласованное соглашение об именах для ваших обработчиков событий, тогда должно быть тривиально выполнять глобальный поиск для всех и добавлять точки останова. Вы можете быстро записать макрос при первом попадании, а затем воспроизвести макрос, чтобы не допустить повторения операции многократно. С небольшой практикой вы сможете в любой момент отбросить все обработчики в течение нескольких секунд.

  • Добавьте дополнительный обработчик события для события (создайте его раньше - например, в конструкторе - поэтому он добавлен перед всеми другими обработчиками событий, которые добавляет ваше приложение, и поэтому, надеюсь, вызывается первым) и вставьте в него контрольную точку, После того, как вы нажмете точку останова, вы можете сделать один шаг через другие обработчики событий в событии.

  • напишите настраиваемый обработчик событий, который обрабатывает клик и просто генерирует новое событие. Прикрепите все другие обработчики событий к этому второстепенному событию. Затем вы можете остановить первый обработчик и пройти через вторичные обработчики, которые он вызывает.