gpt4 book ai didi

debugging - 如何调试 Erlang 代码?

转载 作者:行者123 更新时间:2023-12-03 09:17:58 25 4
gpt4 key购买 nike

我有一些 Ruby 和 Java 背景,我习惯于在错误日志中有确切的行数。

因此,如果编译代码中有错误,我会在控制台输出中看到导致异常的行数。

就像在这个 Ruby 示例中一样:

my_ruby_code.rb:13:in `/': divided by 0 (ZeroDivisionError)
from my_ruby_code.rb:13

它既简单又快速——我只需转到第 13 行并修复错误。

相反,Erlang 只是这样说:
** exception error: no match of right hand side value [xxxx]
in function my_module:my_fun/1
in call from my_module:other_fun/2

没有可查看的行号。

如果我有两条线
X = Param1,
Y = Param2,

在“my_fun”中,如何理解问题出在哪一行?

此外,我曾尝试从 Vim 切换到 Emacs+Elang 模式,但到目前为止,我获得的唯一好处是能够循环遍历 Emacs 中的编译错误(C-k `)。

因此,编写代码和寻找“右手边不匹配”等简单逻辑错误的过程似乎有点麻烦。

我试图在代码中添加很多“io:format”行,但这是需要时间的额外工作。

我也尝试过使用 distel ,但仅打开一次调试器需要 10 个步骤。

问题:
  • 调试 Erlang 代码最直接和最简单的方法是什么?
  • 与 Vim 相比,Emacs 的 erlang-mode 在 Erlang 开发方面是否有优势?
  • 您更喜欢哪种开发“编写-编译-调试”周期?您是否让 Emacs 在终端中编译和运行代码?如何在 Erlang 代码中搜索错误?
  • 最佳答案

    您可以在文件的编译时使用“debug_info”和“debugger”

    1> c(test_module, [debug_info]).
    {ok, test_module}
    2> debugger:start().

    有关如何在 Erlang 中进行调试的更多详细信息,您可以点击视频链接 - https://vimeo.com/32724400

    关于debugging - 如何调试 Erlang 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6438041/

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