Elixir:
Debuggerin käyttö
Kuinka:
Elixir sisältää sisäänrakennetun graafisen debuggerin nimeltään :debugger
. Käyttääksesi sitä, sinun tarvitsee käynnistää se ja liittää se käynnissä olevaan prosessiisi.
Ensimmäiseksi, varmista, että :debugger
on käynnistetty iex
-istunnossa:
iex> :debugger.start()
{:ok, #PID<0.108.0>}
Nyt, tulkkaa koodimoduuli, jota haluat debugata:
iex> :int.ni(MyApp.MyModule)
{:module, MyApp.MyModule}
Voit asettaa katkaisukohdan:
iex> :int.break(MyApp.MyModule, line_number)
:ok
Ja sitten, suorita funktiosi osuaksesi katkaisukohtaan ja käydä läpi koodiasi:
iex> MyApp.MyModule.my_function(arg1, arg2)
# Debugger keskeyttää suorittamisen rivillä, jossa katkaisukohta on
Syväsukellus
Ennen Elixiriä :debugger
, käytti Erlang tarjotakseen debuggerin, jota Elixir käyttää; se on vankka ja erinomainen käsittelemään samanaikaisia prosesseja, Erlang VM:n (BEAM) vahvuusalue. Toisin kuin jotkin muut debuggerit, :debugger
ei salli muuttujien muokkaamista lennosta, johtuen Elixiriin datasta joka on muuttumaton. Vaihtoehtoista apua tarjoaa IEx.pry
, joka mahdollistaa suorituksen keskeyttämisen ja hyppäämisen REPL:iin missä tahansa koodissasi, mikä voi olla erittäin kätevää.
Vaikka :debugger
on hyvä graafiselle käyttöliittymälle, jotkut saattavat pitää enemmän sisäänrakennetusta :observer
-työkalusta, joka tarjoaa myös prosessin tarkastelua ja järjestelmämittareita, vaikkei se erityisesti tähtääkään koodin läpikäymiseen. Elixiriin yhteisö myös osallistuu työkaluja kuten visualixir
ja rexbug
, laajentaen debuggaustyökalujen ekosysteemiä oletusten ulkopuolelle.
Katso myös
- Virallinen Elixirin pääsyoppaan debuggauksen aloitusopas: https://elixir-lang.org/getting-started/debugging.html
- Erlangin
:debugger
Dokumentaatio: http://erlang.org/doc/apps/debugger/debugger_chapter.html - Elixir Forumin keskustelut debuggaustekniikoista: https://elixirforum.com/c/elixir-questions/elixir-questions-questions-help/15