Как правильно называть отладку путем добавления операторов печати?
-
06-07-2019 - |
Вопрос
Существует множество способов отладки, одним из которых является использование отладчика, но самый простой для скромного и ленивого программиста — просто добавить в код несколько операторов печати.
то есть
def foo(x):
print 'Hey wow, we got to foo!', x
...
print 'foo is returning:', bar
return bar
Есть ли подходящее название для этого стиля отладки?
Решение
Да, это известно как printf()
отладка, названный в честь вездесущей функции C:
Используется для описания отладки работы, выполненной путем вставки команд, которые выводят более или менее тщательно выбранную информацию о состоянии в ключевых точках в потоке программы, соблюдая эту информацию и выводя вывод, что неправильно в зависимости от этой информации.
Носители других языков, без сомнения, обращаются к нему с помощью команды print / log / или трассировки по умолчанию, доступной для выбранной ими платформы кодирования, но я слышал имя «printf()», используемое для обозначения этого метода на многих других языках. чем С.Возможно, это связано с его историей:в то время как BASIC и FORTRAN имели базовые, но работоспособные PRINT
команд, C обычно требовал немного больше работы для форматирования различных типов данных: printf()
было (и часто остается) безусловно наиболее удобное средство для этой цели, предоставляющее множество встроенных возможностей форматирования.Его двоюродный брат, fprintf()
, принимает еще один параметр — поток для записи:это позволило тщательному «отладчику» направить диагностическую информацию в stderr
(возможно, сам перенаправляется в файл журнала), оставляя при этом выходные данные программы неповрежденными.
Хотя пользователи современного программного обеспечения для отладки часто смотрят на него свысока, отладка printf() продолжает доказывать свою незаменимость:чрезвычайно популярный инструмент FireBug для веб-браузера Firefox (и аналогичные инструменты, теперь доступные для других браузеров) построен на основе окна консоли, в котором сценарии веб-страницы могут регистрировать ошибки или диагностические сообщения, содержащие отформатированные данные.
Другие советы
Я слышал, как это называется Отладка пещерного человека
Я подумал, что следующая цитата будет уместна:
«Самым эффективным инструментом отладки по-прежнему является тщательное размышление в сочетании с разумным размещением операторов печати».
- Брайан Керниган, «Unix для начинающих» (1979).
Я называю это «Трассировка».
я и мои товарищи по команде называем это «отладкой старой школы».
Отладка сиденья штанов :)
Когда вы работаете во встроенной системе, когда вы находитесь на переднем крае, а язык, на котором вы пишете код, еще не имеет отладчика, когда ваш отладчик ведет себя странно, и вы хотите восстановить немного здравомыслия, и вы хотите чтобы понять, как работает повторный вход в многопоточном коде....
В том же смысле, что и исследовательское программирование, мне нравится это называть исследовательская отладка.Это происходит, когда отладчик недостаточно мощный, чтобы проверять сложные типы в программе или вызывать вспомогательные функции отдельно, или вы просто недостаточно знаете об ошибке, чтобы напрямую использовать указанные функции.
Я называю это программированием «Привет, мама».
Я тоже слышал термин «Отладка MessageBox» от толпы VB для обозначения этого «стиля» «отладки».
Я встраивал системы, и это часто был единственный способ инструментировать код.К сожалению, печать требует времени и влияет на работу системы в реальном времени.Поэтому мы также используем инструмент «трассировки», когда информация о состоянии системы (выход из функции и т. д.) записывается во внутренний буфер для последующего дампа и анализа.Настоящие программисты встраиваемых систем могут отлаживать, моргая светодиодом;)
Я слышал "Отладка Гутенберга"используется в честь парень, который изобрел печатный станок.
Я бы назвал это просто "Ведение журнала".
Обычно я называю это отслеживанием.
Обратите внимание, что в Visual Studio вы можете устанавливать точки останова, которые просто добавляют трассировку.Щелкните правой кнопкой мыши точку останова, выберите «При попадании...» и установите флажок «Напечатать сообщение».
Кроме того, в .Net вы можете добавлять операторы отладки (я думаю, на самом деле это Debug.WriteLine) для вывода на консоль.Эти операторы включаются только в отладочные сборки — компилятор автоматически исключит их при создании релизной сборки.
Классическая отладка
Ручные утверждения?Отладочная фобия?
многословная отладка!
(Хорошее ведение журнала невероятно ценно для отладки проблем в работающих производственных системах.Множество бесполезных и многословных операторов печати не являются таковыми, но регистрация чего-то интересного, когда происходит что-то важное или неожиданное, невероятно важно.Если вы знаете, как отлаживать проблемы, только с помощью отладчика, вы окажетесь в довольно затруднительном положении, когда созданный вами сервис будет неработоспособен для некоторых ваших пользователей, но вы не сможете воспроизвести проблему локально. .)
Я всегда называл это термином «быстрая и грязная отладка» или, короче, «грязная отладка».