Elixir:
Sử dụng bộ gỡ lỗi

Làm thế nào:

Elixir đi kèm với một trình gỡ lỗi đồ họa tích hợp sẵn có tên là :debugger. Để sử dụng nó, bạn cần bắt đầu nó và kết nối với quá trình đang chạy của bạn.

Trước tiên, đảm bảo bạn đã bắt đầu :debugger trong một phiên iex:

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

Bây giờ, biên dịch mô-đun mã mà bạn muốn gỡ lỗi:

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

Bạn có thể đặt một điểm dừng:

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

Và sau đó, chạy chức năng của bạn để đến điểm dừng và bước qua mã của bạn:

iex> MyApp.MyModule.my_function(arg1, arg2)
# Trình gỡ lỗi sẽ tạm dừng thực hiện tại dòng có điểm dừng

Sâu hơn

Trước khi có :debugger của Elixir, Erlang cung cấp trình gỡ lỗi mà Elixir sử dụng; nó mạnh mẽ và tuyệt vời trong việc xử lý các quy trình đồng thời, một điểm mạnh của Erlang VM (BEAM). Khác với một số trình gỡ lỗi khác, :debugger không cho phép sửa đổi các biến trực tiếp, do tính bất biến của dữ liệu trong Elixir. Đối với các lựa chọn khác, bạn có IEx.pry cho phép bạn tạm dừng thực thi và nhảy vào một REPL tại bất kỳ điểm nào trong mã của bạn, có thể rất tiện lợi.

Trong khi :debugger tốt cho một giao diện đồ họa, một số người có thể ưa thích công cụ tích hợp :observer cũng cung cấp việc kiểm tra quy trình và các số liệu hệ thống, mặc dù không chỉ mục tiêu vào việc bước qua mã. Cộng đồng Elixir cũng đóng góp các công cụ như visualixirrexbug, mở rộng hệ sinh thái công cụ gỡ lỗi ngoài những lựa chọn mặc định.

Xem thêm