Clojure:
Korzystanie z debugera
Jak to zrobić:
Clojure opiera się na Maszynie Wirtualnej Javy (JVM), więc wiele debugowania odbywa się za pomocą narzędzi Java. Jednym z takich narzędzi jest CIDER
, potężny pakiet do rozwoju Clojure w Emacs, który posiada solidne możliwości debugowania. Zanurkujmy:
;; Najpierw, podłącz się do projektu Clojure w Emacs za pomocą CIDER
M-x cider-jack-in
;; Ustaw punkt przerwania
;; Przejdź do linii w swoim kodzie Clojure, którą chcesz zbadać i
;; naciśnij "C-c M-b" lub wykonaj:
M-x cider-debug-defun-at-point
;; Gdy kod zostanie uruchomiony, trafisz na przerwanie. CIDER zapyta Cię:
;; 1. n, aby przejść do następnego logicznego kroku w wykonaniu,
;; 2. c, aby kontynuować wykonanie do następnego punktu przerwania,
;; 3. q, aby zakończyć debugowanie.
;; Inspekcja zmiennych lokalnych w punkcie przerwania
;; Będąc na przerwaniu, wpisz:
locals
;; Zobaczysz listę zmiennych lokalnych i ich wartości wydrukowanych w minibufferze.
Przykładowy wynik może wyglądać tak:
{:x 10, :y 20, :result 200}
Głębsze zanurzenie
Debugger to narzędzie stworzone na początkach informatyki. Termin “bug” został ukuty na wczesnym etapie rozwoju informatyki, gdy rzeczywisty owad spowodował błąd, zwierając obwód w maszynie.
Chociaż CIDER
jest świetny dla entuzjastów Emacs, istnieją alternatywy do debugowania Clojure. Na przykład, używanie IntelliJ z pluginem Cursive może zapewnić doświadczenie debugowania bardziej oparte na interfejsie użytkownika GUI. Dodatkowo, można użyć wbudowanego Leiningen lub tools.deps do kontrolowania przepływu procesu podczas debugowania.
W tle, te debuggery często manipulują kodami bajtów, przeprowadzają ewaluacje w dedykowanych sesjach nREPL i oferują inspekcję śladów stosu. Wykorzystują możliwości leżące u podstaw JVM, czerpiąc z bogactwa frameworków debugowania Java.