Elixir Language
डिबगिंग टिप्स
खोज…
IEX.pry / 0 के साथ डिबगिंग
IEx.pry/0
साथ डिबगिंग काफी सरल है।
- अपने मॉड्यूल में
require IEx
- आप जिस कोड का निरीक्षण करना चाहते हैं, उसकी लाइन का पता लगाएं
- लाइन के बाद
IEx.pry
जोड़ें
अब अपना प्रोजेक्ट शुरू करें (जैसे कि iex -S mix
)।
जब IEx.pry/0
साथ लाइन प्रोग्राम तक पहुंच जाती है तो आप रुक जाएंगे और आपके पास निरीक्षण करने का मौका होगा। यह एक पारंपरिक डिबगर में एक ब्रेकपॉइंट की तरह है।
जब आप समाप्त कर सिर्फ टाइप respawn
कंसोल में।
require IEx;
defmodule Example do
def double_sum(x, y) do
IEx.pry
hard_work(x, y)
end
defp hard_work(x, y) do
2 * (x + y)
end
end
IO.inspect / 1 के साथ डिबगिंग
एक अमृत कार्यक्रम को डिबग करने के लिए एक उपकरण के रूप में IO.inspect / 1 का उपयोग करना संभव है।
defmodule MyModule do
def myfunction(argument_1, argument_2) do
IO.inspect(argument_1)
IO.inspect(argument_2)
end
end
यह तर्क 1 और तर्क 2 को कंसोल पर प्रिंट करेगा। चूंकि IO.inspect/1
अपना तर्क देता है, इसे प्रवाह को तोड़ने के बिना फ़ंक्शन कॉल या पाइपलाइनों में शामिल करना बहुत आसान है:
do_something(a, b)
|> do_something_else(c)
# can be adorned with IO.inspect, with no change in functionality:
do_something(IO.inspect(a), IO.inspect(b))
|> IO.inspect
do_something(IO.inspect(c))
पाइप में डिबग
defmodule Demo do
def foo do
1..10
|> Enum.map(&(&1 * &1)) |> p
|> Enum.filter(&rem(&1, 2) == 0) |> p
|> Enum.take(3) |> p
end
defp p(e) do
require Logger
Logger.debug inspect e, limit: :infinity
e
end
end
iex(1)> Demo.foo
23:23:55.171 [debug] [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
23:23:55.171 [debug] [4, 16, 36, 64, 100]
23:23:55.171 [debug] [4, 16, 36]
[4, 16, 36]
पाइप में डालें
defmodule Demo do
def foo do
1..10
|> Enum.map(&(&1 * &1))
|> Enum.filter(&rem(&1, 2) == 0) |> pry
|> Enum.take(3)
end
defp pry(e) do
require IEx
IEx.pry
e
end
end
iex(1)> Demo.foo
Request to pry #PID<0.117.0> at lib/demo.ex:11
def pry(e) do
require IEx
IEx.pry
e
end
Allow? [Yn] Y
Interactive Elixir (1.3.2) - press Ctrl+C to exit (type h() ENTER for help)
pry(1)> e
[4, 16, 36, 64, 100]
pry(2)> respawn
Interactive Elixir (1.3.2) - press Ctrl+C to exit (type h() ENTER for help)
[4, 16, 36]
iex(1)>
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow