【发布时间】: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