Как отладить скрипт на AWK - PullRequest
       14

Как отладить скрипт на AWK

12 голосов
/ 22 января 2010

Какие советы по отладке любого сценария AWK?

Ответы [ 3 ]

10 голосов
/ 22 января 2010

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

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

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

5 голосов
/ 06 декабря 2013

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

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

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

РЕДАКТИРОВАТЬ: нашел больше об этом:

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 голосов
/ 22 января 2010

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

awkdb - отладчик AWK

  • позволяет пошагово пройти код
  • позволяет вам установить (условные) точки останова
  • позволяет проверять переменные
  • позволяет изменять переменные
  • написано в AWK, так что оно переносимо
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...