Подтвердить что ты не робот

Как отладить AWK script

Каковы советы по отладке любого AWK script?

4b9b3361

Ответ 1

Используйте оператор печати в своем коде для печати значений переменных/возвращаемых значений и т.д. Если вы используете gawk, вы можете использовать опцию -W dump-variables[=file] для вывода переменных в файл для отладки.

Кроме того, интересна опция -W lint[=value]. Дополнительную информацию см. В документации. Другие версии AWK, такие как pgawk, обеспечивают профилирование.

Страница книги sed/awk для отладки для вашей справки.

Ответ 2

Теперь есть страница: Invugger Invocation - Руководство пользователя GNU Awk; упоминание вызова вроде:

 $ gawk -D -f getopt.awk -f join.awk -f uniq.awk inputfile

... в противном случае возникнет интерфейс оболочки; но у меня нет переключателя --debug/-D на моем GNU Awk 3.1.7, к сожалению..

EDIT: нашел еще об этом:

awk.info" Новый отладчик AWK

Арнольд Роббинс пишет в феврале 2010 года.
Распространение доступно на http://www.skeeve.com/gawk/gawk-3.1.7-bc-d.tar.gz...
Эта версия такая же, как и 3.1.7, но с новым механизмом выполнения и отладочной версией gawk, названной, скорее, образно "dgawk"...

И затем:

GNU Awk: Это не ваш отец Awk | Доктор Добб

Отладка уровня Awk с отладчиком, подобным GDB, отладчику GNU. Этот первый стал доступен с gawk 4.0 (выпущен в 2011 году) как отдельный исполняемый файл, но теперь он встроен в обычный исполняемый файл gawk.

Итак, это объясняет, почему у меня его нет... время для сборки из исходного кода, думаю :)

Ответ 3

Возможно, вы захотите попробовать этот старый камень (последнее обновление 2000/01/16, без лицензии):

awkdb - отладчик AWK

  • позволяет вам выполнить код
  • позволяет установить (условные) точки останова
  • позволяет вам проверять переменные
  • позволяет изменять переменные
  • написан в AWK, так что он переносится