2010-02-09 2 views
18

Я прочитал эту статью: Setting up a Symbol Server, в которой подробно описано, как настроить общий сервер символов для моей команды.Что мне дает настройка сервера символов?

Вещь, о которой мне интересно, заключается в добавлении моих собственных символов в магазин.

Мой вопрос: что именно я получаю от этого?

Давайте предположим, что у меня есть следующий процесс сборки:

  1. предаю изменения в мой репозиторий Subversion
  2. TeamCity CI инструмент улавливает эти изменения и делает сборку + Модульное тестирование
  3. двоичные файлы (для ссылки на приложения, которые я делаю)

Если я добавлю к третьему пункту выше, возможность добавить встроенные файлы что это дает мне?

Если я создаю программу и ссылаюсь на двоичные файлы, переданные в репозиторий, я получаю обе библиотеки .dll, .pdb и .xml (поддержка intellisense), поэтому мои трассировки стека уже содержат все, что мне нужно.

Является ли это заменой для распространения .pdb?

Или это просто, когда мне нужно открыть .DMP-файл в WINDBG и проанализировать его стеки, где у меня, по-видимому, вообще нет исполняемых файлов, только файл .DMP, предоставленный кем-то другим? (то есть exectuables, возможно, из старой версии, и мне был предоставлен только файл .DMP)

ответ

18

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

Реальное усилие заключается не в создании сервера символов, а в том, что он имеет правильные файлы pdb, чтобы дать вам хорошую возможность отладки. Управление процессом сборки является важной частью этого уравнения.

+2

Я думаю, что тогда это мой ответ. Для моей команды и наших тестировщиков и пользователей обычный отчет о сбое уже содержит все, что нам нужно, но в последнее время я рассматриваю некоторые проблемы с высокой памятью, используя WINDBG, и если я получу файл дампа от нашего клиента, это более чем одна версия промежуточной версии, я не буду иметь файлы локально. Это означает, что это область, в которой я могу использовать сервер символов. –

+1

У вас получилось, удачи. –

1

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

Сервер символов - это просто одно сетевое местоположение, где символы становятся доступными для всех, кто может им понадобиться.

Нет альтернативы файлам .pdb, если вы хотите получить информацию о символе.

+0

Для того чтобы получить полезные утилиты stacktraces в наших инструментах поддержки, мы уже распространяем файлы .pdb с нашим приложением. Отсюда мой вопрос. В принципе, для каждого .dll (который мы создаем сами), мы также отправляем соответствующий файл .pdb. Трассировка стека, которую мы отправили через встроенную функцию отчета о сбое, уже содержит информацию о файле и строке. Означает ли это, что в этом контексте на этом сервере символов действительно не используется? Если программа сработает на машине с тестером, как мне поступить с извлечением символов для библиотек, которые не являются нашими, с этого сервера? В статье не говорится. –

+0

Я бы сказал, что в описанной вами ситуации доля символов не нужна. Большими преимуществами сервера символов являются (1) минимизация количества файлов, включенных в дистрибутив/размер дистрибутива, и (2) создание канонического местоположения для файлов символов (вам не нужно отслеживать управление версиями). Похоже, вы справляетесь с этими проблемами другими способами. – jfawcett

1

Взгляните на этом блоге: Source Server and Symbol Server Support in TFS 2010

Это о сервере & исходного сервере Symbol показывает конкретно в TFS 2010, но вы можете взять много информации и применять его к другой сборке и управление версиями систем, как Что ж.