gpt4 book ai didi

erlang - 如何在生产环境中调试 Elixir 应用程序?

转载 作者:行者123 更新时间:2023-12-03 04:34:58 27 4
gpt4 key购买 nike

这并不是特别针对我当前的问题,而是更普遍的问题。有时我遇到的问题只发生在生产配置中,我想在那里调试它。在 Elixir 中解决这个问题的最佳方法是什么?生产运行无需图形环境(docker)。

在开发中我可以使用 IEX.pry,但由于 mix 在生产中不可用,这似乎不是一个选项。

对于 Erlang https://stackoverflow.com/a/21413344/1561489提到了 dbg 和 redbug,但即使它们可以使用,我也需要帮助将它们应用到 Elixir 代码中。

最佳答案

首先,使用 iex -S mix 在您的开发计算机上启动运行 iex 的本地节点。如果您不希望本地运行的应用程序导致激活断点,则需要禁用该应用程序在本地启动。为此,您只需注释掉application即可。函数位于 mix.exs或运行iex -S mix run --no-start .

接下来,您需要使用Node.connect(:"remote@hostname")从开发节点上的iex连接到在docker上运行的远程节点。 。为此,您必须确保远程计算机上的 epmd 和节点端口均可从本地节点访问。

最后,连接节点后,从本地 iex 运行 :debugger.start()它使用 GUI 打开调试器。现在在本地 iex 中,运行 :int.ni(<Module you want to debug>)它将使模块对调试器可见,您可以继续添加断点并开始调试。

您可以找到包含步骤和屏幕截图的教程here .

关于erlang - 如何在生产环境中调试 Elixir 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46683860/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com