Как правильно называть отладку путем добавления операторов печати?

StackOverflow https://stackoverflow.com/questions/189562

  •  06-07-2019
  •  | 
  •  

Вопрос

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

то есть

 def foo(x):
     print 'Hey wow, we got to foo!', x

     ...

     print 'foo is returning:', bar
     return bar

Есть ли подходящее название для этого стиля отладки?

Это было полезно?

Решение

Да, это известно как printf() отладка, названный в честь вездесущей функции C:

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

-- printf() отладка@все2

Носители других языков, без сомнения, обращаются к нему с помощью команды print / log / или трассировки по умолчанию, доступной для выбранной ими платформы кодирования, но я слышал имя «printf()», используемое для обозначения этого метода на многих других языках. чем С.Возможно, это связано с его историей:в то время как BASIC и FORTRAN имели базовые, но работоспособные PRINT команд, C обычно требовал немного больше работы для форматирования различных типов данных: printf() было (и часто остается) безусловно наиболее удобное средство для этой цели, предоставляющее множество встроенных возможностей форматирования.Его двоюродный брат, fprintf(), принимает еще один параметр — поток для записи:это позволило тщательному «отладчику» направить диагностическую информацию в stderr (возможно, сам перенаправляется в файл журнала), оставляя при этом выходные данные программы неповрежденными.

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

Другие советы

Я слышал, как это называется Отладка пещерного человека

Я подумал, что следующая цитата будет уместна:

«Самым эффективным инструментом отладки по-прежнему является тщательное размышление в сочетании с разумным размещением операторов печати».

  • Брайан Керниган, «Unix для начинающих» (1979).

Я называю это «Трассировка».

я и мои товарищи по команде называем это «отладкой старой школы».

Отладка сиденья штанов :)

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

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

Я называю это программированием «Привет, мама».

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

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

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

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

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

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

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

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

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

многословная отладка!

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

Я всегда называл это термином «быстрая и грязная отладка» или, короче, «грязная отладка».

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top