ZWCAD поддерживает язык программирования Lisp начиная с самых первых своих версий, но отладчика (дебагера) в нем не было в течение долгого времени. В ZWCAD 2020 появился встроенный Отладчик Lisp, разработанный на базе Visual Studio Code от Microsoft, который помогает тестировать и отладить ваш код шаг за шагом. Если вы пишете или редактируете приложения на Lisp, эта статья для вас.
Ранее, если нужно было отладить lisp программу, приходилось копировать код строку за строкой в командную строку ZWCAD и таким образом искать ошибку. Но и этот способ не всегда хорошо работал.
Сегодня нам будет помогать Арфон, заместитель руководителя отдела разработки компании ZWSOFT, имеющий за плечами 10-летний опыт разработки приложений. Он расскажет о том, как удобно выполнять отладку Lisp с помощью Отладчика Lisp в ZWCAD.
Давайте для примера рассмотрим пару блоков кода, которые определяют некую команду FOO и вызывают некую функцию bar:
Такой код сложно отладить построчно, потому что внутри функции FOO есть также ссылка на встроенную функцию mapcar, которая в свою очередь вызывает выражение lambda. Действительно, узнав о возможной ошибке в строке, вызывающей "родительскую" функцию FOO, мы не сможем разобраться в какой из вложенных в неё функций она возникает.
Но мы же работаем с ZWCAD 2020 и кроме того, что это уже сама по себе хорошая новость, вторая - состоит в том, что в ZWCAD 2020 есть встроенный Lisp Debugger, позволяющий выполнять отладку Lisp приложений!
Эта утилита на самом деле представляет собой расширение Visual Studio Code, который является легким, но мощным редактором кодов от Microsoft®, оно бесплатное и имеет открытый исходный код. Данное расширение и VSCode устанавливаются автоматически вместе с ZWCAD 2020.
Конечно, вы можете также загрузить VSCode с сайта Microsoft® и ZWLisp c Microsoft® Extension Market и установить их самостоятельно.
Вернемся к нашему lisp коду функции FOO. Как же мы будем выполнять его отладку в ZWCAD 2020?
Прежде всего загружаем VSCode, выполнив команду VLIDE или VLISP. Вы можете спросить, неужели нельзя запустить VSCode вручную, но мы бы не советовали этого делать, так как команды VLIDE \VLISP выполняют еще одну важную вещь помимо простого запуска VSCode – они уведомляют ZWCAD о необходимость сбора информации для отладки.
Иными словами, сообщают ZWCAD, что надо готовиться к отладке.
Далее мы открываем свой исходник с кодом в VSCode и выполняем некоторые обязательные настройки для того, чтобы начать процесс отладки.
Мы выбираем Attach to ZWCAD в качестве режима отладки, так как собираемся присоединить сессию отладки к уже запущенному ZWCAD. Если нужно запустить новый процесс ZWCAD, вы можете выбрать режим Launch ZWCAD.
После того, как сессия отладки запущена, мы возвращаемся в ZWCAD и загружаем исходный файл foo.lsp.
Пожалуйста, обратите внимание, этот шаг должен быть выполнен после запуска команды VLIDE\VLISP, так как ZWCAD должен собрать необходимую информацию при загрузке файла.
Теперь можно выполнить команду FOO. Когда возникнет исключение, оно будет отображено в VSCode с указанием места его возникновения, стеком вызова и текущими значениями переменных.
После обнаружения ошибки сессия отладки будет завершена, и если мы хотим снова выполнить отладку своего Lisp кода для команды FOO, нам нужно будет снова запустить отладочную сессию.
Отладка может быть очень полезна для того, чтобы обнаружить ошибки в Lisp приложении.
Если вам нужна более подробная информации, вы можете также посмотреть видео.
О программе ZWCAD
ZWCAD - мощная система для 2D/3D проектирования и создания чертежей с полной поддержкой формата DWG. Программа имеет привычный интерфейс пользователя и уникальные функции, дающие значительное удобство в работе: умный выбор объектов по заданным критериям, сравнение чертежей, жесты мышью, голосовые метки, умная печать и многие другие. Являясь результатом постоянного совершенствования в течение 20 лет, ZWCAD представляет собой надежное и эффективное решение САПР, выводит процесс проектирования на высочайший уровень.
Политика лицензирования продуктов ZWCAD предусматривает возможность выбрать подходящий вариант для задач любой формы сложности, не переплачивая за избыточные функции. Тем самым, у покупателей возникают перспективы снижения издержек и проблема выбора подходящего программного обеспечения существенно облегчается.