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.