Clojure:
Å bruke en feilsøker

Hvordan:

Clojure støtter seg på Java Virtual Machine (JVM), så mye av feilsøkingen skjer med Java-verktøy. Et slikt verktøy er CIDER, en kraftpakkepakke for Clojure-utvikling i Emacs, som har solide feilsøkingskapasiteter. La oss dykke inn:

;; Først, koble til et Clojure-prosjekt innen Emacs ved å bruke CIDER
M-x cider-jack-in

;; Sett et brytepunkt
;; Naviger til linjen i din Clojure-kode du ønsker å inspisere og
;; trykk "C-c M-b" eller utfør:
M-x cider-debug-defun-at-point

;; Når koden kjører, vil du treffe på brytepunktet. CIDER vil gi deg valg med:
;; 1. n for å gå til neste logiske skritt i utførelsen,
;; 2. c for å fortsette utførelsen til neste brytepunkt,
;; 3. q for å avslutte feilsøkingen.

;; Inspiser lokale variabler ved brytepunkt
;; Mens du er ved et brytepunkt, skriv:
locals

;; Du vil se en liste av lokale variabler og deres verdier skrevet i minibufferen.

Eksempel på utskrift kan se slik ut:

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

Dypdykk

Debuggeren er et verktøy så gammelt som åsene i databehandlingsbegreper. Uttrykket “bug” ble myntet tilbake i de tidlige dager av databehandling når et faktisk insekt forårsaket en feil ved å kortslutte en krets i en maskin.

Selv om CIDER er flott for Emacs-entusiaster, finnes det alternativer for Clojure-feilsøking. For eksempel, å bruke IntelliJ med Cursive-plugin kan gi en mer GUI-drevet feilsøkingsopplevelse. Pluss, du kan bruke innebygd Leiningen eller tools.deps for å kontrollere prosessflyten når du feilsøker.

Under hetten manipulerer disse debuggerne ofte bytecode, utfører evalueringer i dedikerte nREPL økter, og tilbyr stakksporinspeksjon. De utnytter de underliggende JVM-kapasitetene ved å tappe inn i rikdommen av Javas feilsøkingsrammeverker.

Se også