Elixir:
Использование отладчика

Как использовать:

Elixir поставляется со встроенным графическим отладчиком, называемым :debugger. Чтобы использовать его, вам нужно его запустить и подключиться к вашему запущенному процессу.

Сначала убедитесь, что :debugger запущен в сессии iex:

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

Теперь интерпретируйте модуль кода, который вы хотите отладить:

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

Вы можете установить точку останова:

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

А затем запустите вашу функцию, чтобы достигнуть точки останова и пройтись по вашему коду:

iex> MyApp.MyModule.my_function(arg1, arg2)
# Отладчик приостановит выполнение на строке с точкой останова

Подробнее

Перед :debugger Elixir, Erlang предоставил отладчик, который Elixir использует; он надежен и отлично справляется с параллельными процессами, что является сильной стороной Erlang VM (BEAM). В отличие от некоторых других отладчиков, :debugger не позволяет изменять переменные на лету из-за неизменяемой природы данных в Elixir. Что касается альтернатив, у вас есть IEx.pry, который позволяет приостановить выполнение и перейти в REPL в любой точке вашего кода, что может быть очень удобно.

Хотя :debugger хорош для графического интерфейса, некоторым может понравиться встроенный инструмент :observer, который также предлагает инспекцию процессов и системные метрики, хотя и не специально нацелен на пошаговый анализ кода. Сообщество Elixir также вносит свой вклад в инструменты, такие как visualixir и rexbug, расширяя экосистему инструментов отладки за пределы стандартных.

Смотрите также