raa*_*rts 5 erlang elixir phoenix-framework
这与我当前的问题无关,但更像是一般情况。有时我会遇到一个仅在生产配置中发生的问题,我想在那里进行调试。在Elixir中解决此问题的最佳方法是什么?生产在没有图形环境的情况下运行(泊坞窗)。
在开发人员中,我可以使用IEX.pry,但是由于无法在生产中使用mix,因此似乎不是一种选择。
对于Erlang,https: //stackoverflow.com/a/21413344/1561489提到了dbg和redbug,但是即使可以使用它们,我也需要帮助将它们应用于Elixir代码。
首先,使用 启动在您的开发计算机上运行 iex 的本地节点iex -S mix。如果您不希望本地运行的应用程序导致激活断点,则需要禁用该应用程序在本地启动。为此,您只需注释掉或 runapplication中的函数即可。mix.exsiex -S mix run --no-start
接下来,您需要使用 .dev 节点上的 iex 连接到在 docker 上运行的远程节点Node.connect(:"remote@hostname")。为此,您必须确保远程计算机上的 epmd 和节点端口均可从本地节点访问。
最后,连接节点后,从本地 iex 运行,:debugger.start()这将使用 GUI 打开调试器。现在在本地 iex 中运行,:int.ni(<Module you want to debug>)它将使模块对调试器可见,您可以继续添加断点并开始调试。
您可以在此处找到包含步骤和屏幕截图的教程。
| 归档时间: |
|
| 查看次数: |
1423 次 |
| 最近记录: |