Iex 一步步撬开?

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

我想在我的 Elixir 代码中使用 IEx.pry 一步步进行,就像 ruby 中的 byebug 或 Java 中的 debug point 一样。我尝试查看此处的文档:https://github.com/elixir-lang/elixir/blob/4f68c4f10502e0f54a21093bb9a33957e63a9ac4/lib/iex/lib/iex.ex 但没有发现任何东西。谁能建议一种方法来做到这一点?

elixir phoenix-framework elixir-iex
4个回答
15
投票

这是不可能的,因为 pry 不是调试器。 Pry 只是允许您与特定上下文进行交互。


1
投票

我希望有一种方法可以通过

IEx.pry
逐步执行 Elixir 代码,但这是不可能的。 Erlang 确实有一个可用于 Elixir 代码的调试器。

您可以通过运行以下命令启动调试器:

:debugger.start()

我在这里了解了它:http://blog.plataformatec.com.br/2016/04/debugging-techniques-in-elixir-lang/


1
投票

正如其他答案所指出的,pry 不提供此功能。

作为解决方法,您可以添加多个

IEx.pry
指令,检查并使用
continue
转到下一个。


0
投票

elixir 1.14之后,您可以在要调试的函数上设置断点后使用next/0函数。

要设置断点,您需要输入

iex
终端并使用函数 break!/2 并传递函数和参数,以便该函数接收断点。像这样:

break! MyModule.function_to_be_debugged/2

然后,当您调用该函数时,您将能够使用

next/0

逐行调试它
© www.soinside.com 2019 - 2024. All rights reserved.