Как правильно назвать отладку, добавив операторы "print"
Существует много способов отладки, использование отладчика - один из них, но простой для простого, ленивого программиста - просто добавить несколько операторов print в ваш код.
т.е.
def foo(x):
print 'Hey wow, we got to foo!', x
...
print 'foo is returning:', bar
return bar
Есть ли правильное название для этого стиля отладки?
19 ответов
Да - это известно как printf()
отладка, названная в честь вездесущей функции C:
Используется для описания отладочной работы, выполняемой путем вставки команд, которые выводят более или менее тщательно выбранную информацию о состоянии в ключевых точках потока программы, наблюдения за этой информацией и определения того, что не так, на основе этой информации.
- printf() отладка @everything2
Родные пользователи других языков, без сомнения, обращаются к нему с помощью команды print / log / или trace по умолчанию, доступной для их выбранной платформы кодирования, но я слышал имя "printf()", используемое для ссылки на эту технику во многих других языках. чем C. Возможно, это связано с его историей: в то время как BASIC и FORTRAN имели базовые, но исправные PRINT
Для команд C обычно требуется немного больше работы для форматирования различных типов данных: printf()
was (and often still is) by far the most convenient means to this end, providing many built-in formatting options. Its cousin, fprintf()
, takes another parameter, the stream to write to: this allowed a careful "debugger" to direct diagnostic information to stderr
(possibly itself redirected to a log file) while leaving the output of the program uncorrupted.
Although often looked down on by users of modern debugging software, printf() debugging continues to prove itself indispensable: the wildly popular FireBug tool for the Firefox web browser (and similar tools now available for other browsers) is built around a console window into which web page scripts can log errors or diagnostic messages containing formatted data.
Я думал, что следующая цитата будет уместно:
"Самый эффективный инструмент отладки все еще тщательно продуман, в сочетании с продуманно размещенными печатными заявлениями".
- Брайан Керниган, "Unix для начинающих" (1979)
Я и мои товарищи по команде, называя это "Oldschool Debuging".
Сиденье от штанов отлаживается:)
Когда вы находитесь во встроенной системе, когда вы находитесь на переднем крае, и язык, на котором вы кодируете, еще не имеет отладчика, когда ваш отладчик ведет себя странно, и вы хотите восстановить здравомыслие, и вы хотите чтобы понять, как повторный вход работает в многопоточном коде,....
В том же смысле, что и в поисковом программировании, мне нравится называть его поисковым отладчиком. Это следует, когда отладчик недостаточно мощный, чтобы исследовать сложные типы в программе, или вызывать вспомогательные функции отдельно, или вы просто недостаточно знаете об ошибке, чтобы использовать указанные функции напрямую.
Я также слышал термин "отладка MessageBox" от толпы VB для обозначения этого "стиля" "отладки".
Я слышал, как используется "отладка Гутенберга", в честь парня, который изобрел печатный станок.
Я встраивал системы, часто это единственный метод для кодирования кода. К сожалению, печать требует времени и влияет на работу системы в реальном времени. Таким образом, мы также проводим инструктаж через "трассировку", где информация о состоянии системы (выход из функции и т. Д.) Записывается во внутренний буфер, который затем выгружается и анализируется. Настоящие встроенные программисты могут отлаживать, мигая светодиодом;)
Кроме того, в.Net вы можете добавить операторы отладки (я думаю, что это на самом деле Debug.WriteLine) для вывода на консоль. Эти оценки включены только в отладочные сборки - компилятор автоматически пропустит их, когда вы сделаете сборку релиза.
(Хорошее ведение журнала невероятно полезно для устранения проблем в работающих производственных системах. Множество бесполезных подробных операторов печати - нет, но регистрация чего-то интересного, когда происходит что-то важное или неожиданное, невероятно важна. Если единственный способ узнать, как отладить проблемы, - это отладчик, вы окажетесь в затруднительном положении, когда созданный вами сервис не работает для некоторых из ваших пользователей, но вы не можете воспроизвести проблему локально.)
Я обычно называю это отслеживанием.
Обратите внимание, что в Visual Studio вы можете устанавливать точки останова, которые просто добавляют трассировку. Щелкните правой кнопкой мыши точку останова, выберите "при нажатии..." и установите флажок "Распечатать сообщение".
Я всегда знал это под термином "быстрая и грязная отладка" или просто "грязная отладка".