You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解读IntelliJ中运行Erlang函数时的运行时错误信息

Erlang函数运行错误解读

执行命令

"C:\Program Files\Erlang OTP\bin\erl.exe" -pa F:/1TB/P/workspace-IntelliJ-Erlang2/netconfClient/out/production/netconfClient -pa F:/1TB/P/workspace-IntelliJ-Erlang2/netconfClient -eval netconfManager:open2(). -s init stop -noshell

错误核心分析

错误根因为**badarg(无效参数)**,触发点是ets:select(ct_attributes, ...)调用——ct_attributes这个ETS表不存在,导致ETS操作因参数无效失败。

调用栈拆解

从报错栈可以追踪执行流程:

  • 执行的netconfManager:open2()调用了ct_netconfc:open/4
  • 接着进入ct_gen_conn:do_start/4
  • 随后调用ct_util:does_connection_exist/3
  • 再到ct_config:get_key_from_name/1
  • 最终在ets:select/2抛出错误

问题本质

ct_*开头的模块是Erlang Common Test(CT)测试框架的组件,这类模块依赖CT框架初始化的运行环境,包括创建ct_attributes这类ETS表。直接通过IntelliJ的Run Configuration运行函数,没有启动CT框架的初始化流程,导致依赖资源缺失,进而触发参数错误。

解决方向

  • 通过Common Test框架运行:把代码包装成CT测试用例,用CT的启动方式运行,确保环境初始化完成
  • 修改代码逻辑:如果不需要CT框架,替换掉依赖ct_netconfc等CT模块的代码,改用不依赖CT的NetConf客户端实现
  • 手动初始化CT环境(不推荐):若必须直接运行,需手动调用CT的初始化函数,但这种方式易引入其他环境问题,不建议使用

内容的提问来源于stack exchange,提问作者Bhuvan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 01:20:37