作者:ZhuJiongJiongnu_441 | 来源:互联网 | 2023-05-20 13:59
我刚开始使用Elixir,并开始了一个凤凰项目,我非常喜欢.现在有了rails后台,我习惯于被调试工具所破坏,比如"debugger","byebug"等等; 我想知道Elixir是否有类似的工具?你们是如何调试Elixir应用程序的?
甚至相当于Rubys raise my_object.inspect
,也会有奇迹!
谢谢
1> Paweł Obrok..:
您可以使用 IEx
require IEx
value = {:some, :erlang, :value}
IEx.pry
如果您启动此程序(例如iex -s program.exs
,iex -S mix
对于某个项目),系统会询问您是否允许在到达此代码时对其value
进行检查,并且可供您检查.
您也可以使用IO.inspect
允许您输出基本上任何erlang数据结构来进行打印调试.
值得一提的是IO.inspect返回给定的参数.所以,如果你有一个像`foo(bar,baz)`的代码,你可以直接添加`foo(IO.inspect(bar),baz)`并且一切都会表现得一样.
对于你想要使用`iex.bat --werl -S mix phoenix.server`的windows
2> MartinElvar..:
调试牛仔应用程序和Phoenix应用程序.
我在Elixir rader http://www.jessetrimble.net/iex-pry-elixir中看到了这篇文章,我想我会在这里总结一下,因为它非常方便:-).
在Rails应用程序(和其他)中,您可以简单地在控制器中放入调试器标签,并且当路径被触发时,它将在调试器标签处中断.
在凤凰城使用撬时,上面会导致
Cannot pry #PID<0.259.0> at web/controllers/posts_controller.ex:8. Is an IEx shell running?
事实证明,Phoenix进程必须在IEx会话中运行,这样做
iex -S mix phoenix.server
相反,你会看到
Request to pry #PID<0.266.0> at web/controllers/posts_controller.ex:9. Allow? [Yn]
我是Elixir和Phoenix的新手,所以这可能是一个转储问题.理解用pry我可以检查变量和(进入iex)我可以进行函数调用.但这只是调试器功能的一半:我如何遵循程序的执行流程?还有另一种工具可以让我前进到下一行并进入功能吗?Ruby的byebug具有两种功能.
3> Julien Liroc..:
您可以使用 https://github.com/qhool/quaff中的Quaff.Debug
模块
Debug模块提供了一个简单的辅助接口,用于在erlang图形化调试器中运行Elixir代码
我今天用Elixir 1.0.4测试了它,它的工作原理.