Elixir:在到达IEx.pry后恢复代码执行

Dav*_* B. 4 elixir

在ruby中Ctrl - d允许在到达之后恢复代码的执行binding.pry.Elixir的等价物是什么IEx.pry

Dog*_*ert 8

如中所述IEx.pry/0,您可以调用respawn以恢复执行.

这对于在由特定进程执行时调试特定代码块很有用.该过程成为IEx命令的评估者,并暂时更改为具有自定义组长.这些值通过调用来恢复IEx.Helpers.respawn/0,这会启动一个新的IEx shell,从而释放出被盗的值.

iex(1)> defmodule A do
...(1)>   require IEx
...(1)>   def a do
...(1)>     a = 1
...(1)>     b = 2
...(1)>     IEx.pry
...(1)>     IO.puts a + b
...(1)>   end
...(1)> end
{:module, A,
 <<70, 79, 82, 49, 0, 0, 12, 144, 66, 69, 65, 77, 65, 116, 85, 56, 0, 0, 0, 110,
   0, 0, 0, 12, 8, 69, 108, 105, 120, 105, 114, 46, 65, 8, 95, 95, 105, 110,
   102, 111, 95, 95, 9, 102, 117, 110, 99, ...>>, {:a, 0}}
iex(2)> A.a
Break reached: A.a/0 (iex:6)
pry(1)> a
1
pry(2)> b
2
pry(3)> respawn

Interactive Elixir (1.5.1) - press Ctrl+C to exit (type h() ENTER for help)
3
:ok
Run Code Online (Sandbox Code Playgroud)