Clojure:
Att använda en debugger
Hur man gör:
Clojure stödjer sig på Java Virtual Machine (JVM), så mycket av felsökningen sker med Java-verktyg. Ett sådant verktyg är CIDER
, ett kraftfullt paket för Clojure-utveckling i Emacs, som har gedigna felsökningsförmågor. Låt oss dyka in:
;; Först, anslut till ett Clojure-projekt inuti Emacs med CIDER
M-x cider-jack-in
;; Ställ in en brytpunkt
;; Navigera till raden i din Clojure-kod som du vill inspektera och
;; tryck "C-c M-b" eller exekvera:
M-x cider-debug-defun-at-point
;; När koden körs kommer du att träffa på brytpunkten. CIDER kommer att uppmana dig med:
;; 1. n för att gå till nästa logiska steg i utförandet,
;; 2. c för att fortsätta utförandet till nästa brytpunkt,
;; 3. q för att avsluta felsökningen.
;; Inspektera lokala variabler vid brytpunkten
;; Medan vid en brytpunkt, skriv:
locals
;; Du kommer att se en lista över lokala variabler och deras värden utskrivna i minibuffern.
Exempel på utskrift kan se ut som:
{:x 10, :y 20, :resultat 200}
Fördjupning
Debuggern är ett verktyg lika gammalt som kullarna i datatermer. Termen “bugg” myntades tillbaka i de tidiga dagarna av dataåldern när ett faktiskt insekt orsakade ett fel genom att kortsluta en krets i en maskin.
Medan CIDER
är fantastiskt för Emacs-entusiaster, finns det alternativ för Clojure-felsökning. Till exempel, användningen av IntelliJ med Cursive-pluginet kan erbjuda en mer GUI-driven felsökningsupplevelse. Dessutom kan du använda den inbyggda Leiningen eller tools.deps för att kontrollera processflödet vid felsökning.
Bakom kulisserna manipulerar dessa debuggerar ofta bytekoder, utför utvärderingar i dedikerade nREPL-sessioner och erbjuder stack trace-inspektion. De utnyttjar den underliggande JVM:s kapaciteter, genom att tappa in i rikedomen av Javas felsökningsramverk.