IEx.pry()之后继续执行

问题描述 投票:0回答:2

如何退出调试而不重新启动会话?

在执行

respawn
命令后,我丢失了所有先前初始化的变量。

Interactive Elixir (1.7.3) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> defmodule Test do
...(1)> require IEx
...(1)> def test do
...(1)> s = "Hello"
...(1)> IEx.pry()
...(1)> "#{s}, World!"
...(1)> end
...(1)> end
{:module, Test,
 <<70, 79, 82, 49, 0, 0, 13, 144, 66, 69, 65, 77, 65, 116, 85, 56, 0, 0, 0, 142,
   0, 0, 0, 15, 11, 69, 108, 105, 120, 105, 114, 46, 84, 101, 115, 116, 8, 95,
   95, 105, 110, 102, 111, 95, 95, 7, 99, ...>>, {:test, 0}}
iex(2)> a = 1
1
iex(3)> Test.test
Break reached: Test.test/0 (iex:5)
pry(1)> s
"Hello"
pry(2)> respawn

Interactive Elixir (1.7.3) - press Ctrl+C to exit (type h() ENTER for help)
"Hello, World!"
iex(1)> a
** (CompileError) iex:1: undefined function a/0
elixir
2个回答
0
投票

您不能按照文档中的说明进行操作https://hexdocs.pm/iex/IEx.Helpers.html#respawn/0 它只是启动一个新进程,与前一个进程无关


0
投票

如何退出调试而不重新启动会话?

Continue/0函数,用于恢复当前进程的执行。所以它不会像respawn/0函数那样重新启动进程。

重生命令之后,我丢失了所有先前初始化的变量。

无法重用以前的变量或为正在调试的变量分配新值

© www.soinside.com 2019 - 2024. All rights reserved.