Elixir:
Å bruke en feilsøker

Hvordan:

Elixir leveres med en innebygd grafisk feilsøker kalt :debugger. For å bruke den, må du starte den og koble til din kjørende prosess.

Først, sørg for at du har startet :debugger innenfor en iex-økt:

iex> :debugger.start()
{:ok, #PID<0.108.0>}

Nå, tolk modulen du ønsker å feilsøke:

iex> :int.ni(MyApp.MyModule)
{:module, MyApp.MyModule}

Du kan sette et brytepunkt:

iex> :int.break(MyApp.MyModule, linjenummer)
:ok

Og deretter, kjøre funksjonen din for å treffe brytepunktet og stegge gjennom koden din:

iex> MyApp.MyModule.min_funksjon(arg1, arg2)
# Debugger vil pause utførelsen ved linjen med brytepunktet

Dypdykk

Før Elixirs :debugger, tilbød Erlang debuggeren som Elixir bruker; den er robust og flink til å håndtere samtidige prosesser, et sterkt punkt av Erlang VM (BEAM). I motsetning til noen andre debuggere, lar ikke :debugger deg modifisere variabler på fly, på grunn av den umutable naturen til data i Elixir. Når det gjelder alternativer, har du IEx.pry som lar deg pause utførelsen og hoppe inn i en REPL hvor som helst i koden din, noe som kan være super hendig.

Mens :debugger er god for et grafisk grensesnitt, kan noen foretrekke det innebygde verktøyet :observer som også tilbyr inspeksjon av prosesser og systemmetrikker, selv om det ikke er spesifikt rettet mot å stegge gjennom kode. Elixirs fellesskap bidrar også med verktøy som visualixir og rexbug, som utvider økosystemet av feilsøkingsverktøy utover standardene.

Se også