Как правильно назвать отладку, добавив операторы "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)

Я слышал, что это называется Caveman Debugging

Я называю это Tracing.

Я и мои товарищи по команде, называя это "Oldschool Debuging".

Сиденье от штанов отлаживается:)

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

Я называю это "Привет, мама".

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

Я также слышал термин "отладка MessageBox" от толпы VB для обозначения этого "стиля" "отладки".

Я слышал, как используется "отладка Гутенберга", в честь парня, который изобрел печатный станок.

Я встраивал системы, часто это единственный метод для кодирования кода. К сожалению, печать требует времени и влияет на работу системы в реальном времени. Таким образом, мы также проводим инструктаж через "трассировку", где информация о состоянии системы (выход из функции и т. Д.) Записывается во внутренний буфер, который затем выгружается и анализируется. Настоящие встроенные программисты могут отлаживать, мигая светодиодом;)

Я бы назвал это просто "ведение журнала".

Кроме того, в.Net вы можете добавить операторы отладки (я думаю, что это на самом деле Debug.WriteLine) для вывода на консоль. Эти оценки включены только в отладочные сборки - компилятор автоматически пропустит их, когда вы сделаете сборку релиза.

Подробная отладка!

(Хорошее ведение журнала невероятно полезно для устранения проблем в работающих производственных системах. Множество бесполезных подробных операторов печати - нет, но регистрация чего-то интересного, когда происходит что-то важное или неожиданное, невероятно важна. Если единственный способ узнать, как отладить проблемы, - это отладчик, вы окажетесь в затруднительном положении, когда созданный вами сервис не работает для некоторых из ваших пользователей, но вы не можете воспроизвести проблему локально.)

Классическая отладка

Я обычно называю это отслеживанием.

Обратите внимание, что в Visual Studio вы можете устанавливать точки останова, которые просто добавляют трассировку. Щелкните правой кнопкой мыши точку останова, выберите "при нажатии..." и установите флажок "Распечатать сообщение".

Я всегда знал это под термином "быстрая и грязная отладка" или просто "грязная отладка".

Ручные утверждения? Отладчик фобии?

Другие вопросы по тегам