2013-09-02 2 views
0

Охотничьи ошибки часто составляют 97% от «, понимая определенную часть кодовой базы» и 3% от «, написание нескольких строк, чтобы устранить проблему после правильного понимания».Как записать контекст сеанса отладки?

Когда ошибка действительно трудно понять, это может означать полный день, глядя на код, попытку некоторых экспериментов, установку контрольных точек и переход по коду, чтобы иметь некоторое представление об этой загадочной ошибке. Этот полный рабочий день будет запомнен в CVS как очень небольшое изменение в кодовой базе (включая короткий комментарий) вместе с «исправленной проблемой #xxxx, [какой-то компонент] делал [что-то] неправильно ..." как сообщение фиксации.

Так что в конце дня ошибка больше не существует, но единственной сохраненной информацией о ней будет различие в CVS. Часы, потраченные в отладчике, чтобы писать окончательно строки для исправления ошибок, будут потеряны навсегда.

Я хочу, чтобы иметь возможность записывать некоторое ключевые индикаторы/событие отладки сессии, как:

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

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

Есть ли инструменты, которые это делают?
(Этот вопрос является языком/IDE агностиком ...)

ответ

2

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

Вместо этого мой совет - убедиться, что вы исправили ошибку только один раз. Добавьте тестовый пример в автоматизированный набор тестов. Очистите дизайн вокруг этой грязной области, чтобы вам не пришлось тратить столько времени на нее в следующий раз, когда она плохо себя ведет. (Набор тестов - лучшее место для хранения «входных данных, которые я вручную подал программе», и что еще является «кодом, который был изменен и отменен для проверки какого-либо поведения», чем неофициальный модульный тест?)

+0

Я хочу посмотреть в некоторых из отладочных журналов. Как? –

+0

Извините, но их нелегко разделить. Я обычно использую ручку и бумагу (спиральные прокладки) для журналов, и мой почерк действительно ужасен. Но, чтобы дать вам представление, они заполнены такими вещами, как: проблема должна быть решена четко написана (очень полезно при попытке отступить!), Гипотезы, идеи попробовать (например, контрольные списки) и т. Д. Одна вещь, которая обычно отсутствует, является фактическим решением проблемы; вместо этого в комментариях. – Anders

Смежные вопросы