понедельник, 20 апреля 2009 г.

Tracepoints

В Visual Studio 2008 есть такая удобная штука — «tracepoint». Из названия ясно, что в определенной точке программы можно вывести какое-либо сообщение. А удобство в том, что не нужно менять код, чтобы добавить отладочные трейсы. Создается такая точка также как breakpoint, через меню по правой кнопке:

При вставке появляется диалог, в котором можно настроить точку:

Можно выводить значения переменных и прочую информацию(возможностей достаточно) не меняя код программы и не перекомпилируя.

У меня возникла только одна проблема: обрезаются очень длинные текстовые переменные. Пока идея только в том, чтобы в точке вызывать макрос и в нем выводить текст — не знаю сработает или нет.

UPD: В макросе тоже текст обрезался до длины в 200 символов. Но в Text Visualizer отладчика показывает полностью, значит способ есть...

6 комментариев:

  1. В 2005 студии тоже есть TracePoints

    ОтветитьУдалить
  2. Я слышал, что там тоже есть, но проверить мог только в 2008. Если в 2005 тоже все работает, то это плюс пользователям 2005-й.

    Кстати, неужели ещё кто-то пользуется 2005-й версией? Там же в компиляторе куча багов :)

    ОтветитьУдалить
  3. Да, в 2005 есть, только в виде breakpoint определённого типа.

    А можно пару примеров бага в 2005?

    ОтветитьУдалить
  4. Примеры багов в 2005 можно найти по адресу http://connect.microsoft.com/VisualStudio.

    Конкретный пример, который сильно портил нам настроение и ускорил переход на 2008 версия можно посмотреть тут.

    ОтветитьУдалить
  5. >> В макросе тоже текст обрезался до длины в 200 символов. Но в Text Visualizer отладчика показывает полностью, значит способ есть...

    В макросе \ функции разбивать длинный текст на куски по 200 и выводить их:)

    ОтветитьУдалить
  6. Функция DTE.Debugger.GetExpression возвращает строку уже обрезанной. Можно, конечно, приписывать ещё [200*step], но мне кажется это несколько искусственным решением. Хотя, это единственное, что пока что работает.

    ОтветитьУдалить