Сконфигурируйте отладчик visual studio для операторов try-catch - PullRequest
9 голосов
/ 07 апреля 2010

VS 2005

Например,

Мои сотрудники дали мне проект с X try - catch операторов.

X> 100 .. 300

Мне нужно протестировать проект. Есть ли способ отметить каждое (каждое) начало catch как точку останова? Я не хочу делать это вручную. Может быть, есть какие-то настройки, которые мне подходят?

Ответы [ 4 ]

15 голосов
/ 07 апреля 2010

Перейдите к Отладка> Исключения (Visual Studio 2013 и более ранние версии) или Отладка> Windows> Настройки исключений (Visual Studio 2015 и более поздние версии).

В этом диалоговом окне вы можете включить отладку исключений по первому случаю - когда выдается исключение, отладчик автоматически прерывает код выброса перед выполнением кода «catch», что позволяет отладить его.

То, что вы хотите сделать, это попросить его прервать при возникновении исключений CLR, а не только когда они не обрабатываются (изображение из Visual Studio 2013 - 2015 похоже, но теперь в виде, а не в диалоговом окне):

alt text

(Примечание. Отладчик не будет прерываться всякий раз, когда вы выполняете блок try, только если на самом деле выдается исключение)

0 голосов
/ 11 августа 2016

Это можно использовать, если вы используете более старую интегрированную среду разработки (до 2012 года)

Программно применять / отключать точки останова в Visual Studio

К сожалению, они удалили макросы из новых IDE. Существуют расширения, которые вы можете скачать, и одно из них позволяет вам изменять файл * .js. Проблема будет заключаться в том, чтобы преобразовать то, что джентльмен написал в другом посте, чтобы правильно его прочитать. Пока я просто использую System.Diagnostics.Debugger.Launch();, это просто боль, и было бы здорово, если бы кто-то смог перевести этот файл.

0 голосов
/ 07 апреля 2010

Мне неизвестна возможность, позволяющая устанавливать точки останова в коде по некоторому шаблону. Самое близкое, к чему вы можете прийти - это Debug / New breakpoint / Break at Function, где вы можете указать файл и номер строки. Если вы можете автоматизировать этот процесс и обработать список, сгенерированный поиском grep, вы можете найти способ. Вот примеры из среды IDE, которые могут помочь вам начать:

' Sets a pending breakpoint at the function named "main".  It marks the 
' breakpoint as one set by automation.
Sub AddBreakpointToMain()
    Dim bp As EnvDTE.Breakpoint
    Dim bps As EnvDTE.Breakpoints

    bps = DTE.Debugger.Breakpoints.Add("main")
    For Each bp In bps
        bp.Tag = "SetByMacro"
    Next
End Sub

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

0 голосов
/ 07 апреля 2010

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

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