【问题标题】:How to debug quickly in phoenix/elixir?如何在phoenix/elixir中快速调试?
【发布时间】:2017-05-21 04:07:30
【问题描述】:

在学习 Elixir/Phoenix 时,碰巧经常遇到这样的问题。

问题是这来自依赖,所以通常我会这样做:

  • 打开deps/something/.../thefile.ex
  • 添加一些调试代码,例如 IO.inspect 以查看传递了哪些参数
  • 停止服务器,用mix deps.recompile something重新编译
  • 查看文档以了解该函数需要哪些类型
  • 比较类型并将问题追溯到我的代码

这可行,但我想改进我的流程,我知道我可以使用 Iex 启动 repl,但我想在以下方面变得更快:

  • 在错误页面中自动启动 repl(就像在 Rails 的 better_errors gem 中一样)
  • 有一种方法可以查看哪些参数进入了该方法,而无需我四处挖掘(可以通过前一点解决)
  • 能够快速查看方法的文档

非常感谢任何其他提示。

【问题讨论】:

  • 您至少应该能够看到终端中的参数。像这样的一行:(FunctionClauseError) no function clause matching in Keyword.pop/3 (elixir) lib/keyword.ex:828: Keyword.pop(%{}, :a, nil)
  • 您也可以通过发出命令c 来编译终端中的单个文件而无需重新启动服务器,例如:c "file-name"(尽管我不确定他们是否观察到配置更改)。

标签: debugging elixir phoenix-framework


【解决方案1】:

请在 Plug 中打开一个问题:https://github.com/elixir-lang/plug

您有一些很棒的建议,例如访问文档并明确参数。不过,我认为我们不能在出错的地方提供 REPL。

编辑 1:我继续使用 opened an issue here,因为我对这些改进感到兴奋! :D

编辑 2:我意识到我可能应该使用评论,因为这还不是一个答案(还没有!)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-25
    • 1970-01-01
    • 1970-01-01
    • 2018-05-30
    • 1970-01-01
    相关资源
    最近更新 更多