调试elixir项目或运行beam虚拟机可在vscode中实现,需配置环境并安装必要组件。1. 安装elixir ls和debugger for erlang/elixir插件,并确保erlang/otp已安装;2. 启动iex带debug模式,并配置launch.json文件连接节点;3. 在代码中设置断点并启动调试;注意节点名、cookie需一致,断点仅在已加载模块生效,调试完成后应关闭会话释放资源。

调试 Elixir 项目或者运行 Erlang 虚拟机(BEAM)在 VSCode 中其实并不复杂,只要配置好环境,就能像调试其他语言一样进行断点、单步执行等操作。下面是一些实用的方法和步骤。

安装必要的插件和依赖
要让 VSCode 支持 Elixir 调试,首先得确保安装了几个关键的组件:
- Elixir LS:这是官方推荐的语言服务器,支持自动补全、跳转定义、调试等功能。
- Debugger for Erlang/Elixir:这个插件可以让你在 VSCode 中直接连接到 BEAM VM 并调试代码。
- Erlang/OTP 环境:确保你的系统上已经安装了 Erlang 和 Elixir,并且可以通过命令行正常运行。
安装方法很简单,在 VSCode 的扩展商店搜索“Elixir”或“Erlang Debugger”,找到后点击安装即可。

配置调试器连接 BEAM 虚拟机
VSCode 调试 Elixir 是通过连接正在运行的 Erlang 节点来实现的。你需要先启动一个带有调试端口的节点。
-
启动 iex 带 debug 模式:

iex --name debug@localhost --cookie my_cookie -S mix
-
在 VSCode 中创建
.vscode/launch.json文件,添加如下配置:{ "version": "0.2.0", "configurations": [ { "type": "erlang", "request": "attach", "name": "Attach to Erlang Node", "hostName": "localhost", "port": 4700, "cookie": "my_cookie", "startMode": "node" } ] } 打开你想要调试的模块文件,在代码中设置断点。
点击运行和调试侧边栏的“启动调试”按钮,连接到节点并开始调试。
注意:默认情况下,Erlang 调试端口是 4700,如果你改了端口,记得同步修改配置。
实用技巧和注意事项
-
节点名称和 Cookie 要一致:启动节点时指定的
--name和--cookie必须和launch.json中的保持一致,否则连接不上。 - 使用 Distillery 或 Release 模式也要能调试:只要你启动的是带调试功能的节点,不管是 IEx 还是 release 构建出来的程序都可以连上调试。
- 断点只能打在编译后的模块上:如果你在未加载的模块里打了断点,调试器不会识别,所以最好先跑一遍相关逻辑再加断点。
- 不要忘记关掉调试器:调试完成后建议手动停止会话,避免后台占用资源。
基本上就这些,整个过程不复杂但细节容易忽略。只要节点能连上,剩下的就是常规操作了。










