2017-09-24 6 views

答えて

3

IEx.pry/0に記載されているように、respawnを呼び出して実行を再開することができます。

これは、特定のプロセスによって実行されたときに特定のコードのチャンクをデバッグする場合に便利です。このプロセスはIExコマンドの評価者になり、一時的に変更されてカスタムグループリーダーになります。これらの値はIEx.Helpers.respawn/0を呼び出すことによって元に戻され、新しいIExシェルが開始され、指定されたものが解放されます。

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