Clojure:
Использование отладчика

Как это сделать:

Clojure опирается на Java Virtual Machine (JVM), поэтому большая часть отладки производится средствами Java. Один из таких инструментов - CIDER, мощный пакет для разработки на Clojure в Emacs, который обладает хорошими возможностями для отладки. Давайте погрузимся:

;; Сначала подключитесь к проекту Clojure внутри Emacs используя CIDER
M-x cider-jack-in

;; Установите точку останова
;; Перейдите к строке в вашем коде Clojure, которую вы хотите исследовать и
;; нажмите "C-c M-b" или выполните:
M-x cider-debug-defun-at-point

;; Когда код выполнится, вы попадете на точку останова. CIDER предложит вам:
;; 1. n, чтобы перейти к следующему логическому шагу выполнения,
;; 2. c, чтобы продолжить выполнение до следующей точки останова,
;; 3. q, чтобы выйти из режима отладки.

;; Изучите локальные переменные на точке останова
;; Находясь на точке останова, введите:
locals

;; Вы увидите список локальных переменных и их значений, выведенных в минибуфере.

Пример вывода может выглядеть так:

{:x 10, :y 20, :result 200}

Погружение в Детали

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

Хотя CIDER отлично подходит для энтузиастов Emacs, существуют альтернативы для отладки Clojure. Например, использование IntelliJ с плагином Cursive может обеспечить более GUI-ориентированный опыт отладки. Кроме того, вы можете использовать встроенный Leiningen или tools.deps для контроля процесса отладки.

Под капотом эти отладчики часто манипулируют байт-кодами, выполняют оценки в специальных сессиях nREPL и предлагают инспекцию стека вызовов. Они используют возможности базовой JVM, подключаясь к богатому набору фреймворков отладки Java.

Смотрите также