У меня был этот аргумент много раз.Отладчик является только опорой, если вы используете его как один.Я встречал людей, которые отказывались использовать отладчик даже для того, чтобы получить трассировку стека, где произошел сбой фрагмента кода, вместо этого используя разделение printf для поиска сбойной строки кода (это заняло бы день или больше ... серьезно, люди?)
Одна из проблем, с которой вы можете столкнуться при использовании отладчика, - это туннельное зрение.Отладчик может сфокусировать ваше внимание на непосредственной области, где ошибка стала очевидной - будь то сбой, неверные данные или иным образом - за счет отвлечения вашего внимания от других областей, которые могли бы извлечь пользу из какого-либо расследования.С другой стороны, фактическое наблюдение за выполнением кода в отладчике может иногда освободить вас от мысленной ловушки неправильного восприятия кода.Вы могли бы поклясться, что он делает X, когда на самом деле делает Y - видеть, что это делает Y на ваших глазах, - иногда глубокий момент.
Тем не менее, я запускаю отладчик только в двух обстоятельствах:
- Проявился баг, из-за которого примерно через пять минут я не могу сразу догадаться о причине
- Я пытаюсь понять какой-то код, с которым я не знаком, и хочу посмотретьон выполняет
Честно говоря, время в отладчике обычно составляет всего несколько минут, затем проблема обнаружена.Устранение проблемы, как правило, является трудной частью, и отладчик для этого малопригоден.
Я думаю, что это ошибка, а не то, чтобы всегда иметь отладчик наготове или даже запускать код всегда подотладчик, но для запуска DEBUG BUILD.Вы уже указали на худшую из проблем с этим.Распределение памяти, как правило, происходит по-разному, неинициализированные данные заполняются разными значениями и т. Д. Если вы впервые запускаете сборку релиза за несколько недель до того, как QA получит его (или, в сумасшедшем магазине, до того, как вы начнете отправлять)) вы можете столкнуться с миром серьезной боли.
Я только один раз видел ошибку, которая проявлялась только в отладочной сборке.Несколько человек утверждали, что это не важно, потому что это не то, что мы отправляем, но я все равно посмотрел на это и обнаружил ДЕЙСТВИТЕЛЬНО плохую проблему.
Как и любой инструмент, отладчик имеет подходящее и неуместное использование.Там нет плохих инструментов.