Clojure:
Debuggerin käyttö
Kuinka:
Clojure nojaa Java Virtuaalikoneeseen (JVM), joten suuri osa debuggauksesta tapahtuu Java-työkaluilla. Yksi tällainen työkalu on CIDER
, tehokas paketti Clojure-kehitykseen Emacsissa, jolla on vankat debuggauskyvyt. Sukellamme sisään:
;; Ensimmäiseksi, kytkeydy Clojure-projektiin Emacsin sisällä käyttäen CIDERia
M-x cider-jack-in
;; Aseta katkaisukohta
;; Navigoi riviin Clojure-koodissasi, jota haluat tarkastella ja
;; paina "C-c M-b" tai suorita:
M-x cider-debug-defun-at-point
;; Kun koodi suorittuu, osut katkaisukohtaan. CIDER kysyy sinulta:
;; 1. n mennäksesi seuraavaan loogiseen askelmaan suorituksessa,
;; 2. c jatkaaksesi suoritusta seuraavaan katkaisukohtaan,
;; 3. q lopettaaksesi debuggauksen.
;; Tarkasta paikalliset muuttujat katkaisukohdassa
;; Ollessasi katkaisukohdassa, kirjoita:
locals
;; Näet listan paikallisia muuttujia ja niiden arvoja tulostettuna minibufferiin.
Esimerkkituloste voi näyttää:
{:x 10, :y 20, :result 200}
Syväsukellus
Debugger on työkalu, joka on ollut olemassa ikuisuuden tietokonealan termeissä. Termi “bugi” keksittiin tietokoneiden alkuaikoina, kun todellinen hyönteinen aiheutti virheen oikosulkemalla laitteen piirin.
Vaikka CIDER
on loistava työkalu Emacs-harrastajille, Clojuren debuggaukseen on muitakin vaihtoehtoja. Esimerkiksi IntelliJ:n käyttäminen Cursive-laajennoksen kanssa voi tarjota enemmän GUI-pohjaista debuggauskokemusta. Lisäksi voit käyttää sisäänrakennettua Leiningeniä tai tools.deps:iä hallitaksesi prosessivirtaa debuggauksen aikana.
Näiden debuggerien alla ne usein manipuloivat baittikoodeja, suorittavat arviointeja omistetuissa nREPL-istunnoissa ja tarjoavat pinonjäljityksen tarkasteluja. Ne hyödyntävät alla olevan JVM:n kyvykkyyksiä, hyödyntämällä Java:n debuggauskehyksen rikkautta.