I'm learning Erlang now. As far as I know, there's a tool called rebar3 that can generate a project boilerplate. Ok, so after installing it, I generate an empty project like this:
$ rebar3 new umbrella myproj
Sweet. Now I open VS Code with the Erlang extension installed. I add a launch.json file as it is said in the documentation:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Launch erlang",
"type": "erlang",
"request": "launch",
"cwd": "${workspaceRoot}",
"preLaunchTask": "rebar3 compile"
}
]
}
Then, I add another tasks.json file:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "rebar3 compile",
"type": "shell",
"command": "rebar3 compile",
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": "$erlang"
}
]
}
Then, I set a breakpoint, here in the myproj_app.erl file:
%%%-------------------------------------------------------------------
%% @doc myproj public API
%% @end
%%%-------------------------------------------------------------------
-module(myproj_app).
-behaviour(application).
-export([start/2, stop/1]).
start(_StartType, _StartArgs) ->
io:format("Hello, world!~n"), %<-- BREAKPOINT
myproj_sup:start_link().
stop(_State) ->
io:format("Hello, world!~n"),
ok.
%% internal functions
I press F5, the debugger starts but it never stops. Here's the output:
> Executing task: rebar3 compile <
===> Verifying dependencies...
===> Analyzing applications...
===> Compiling myproj
Terminal will be reused by tasks, press any key to close it.
Compiling arguments file "/tmp/bp_2863283.erl"
Compile result: sucess
Module bp_2863283 loaded
If I add the line:
"arguments": "-config dev -s sample"
To the launch.json file, it gives me an error and doesn't start. And I'm pretty sure those aren't the arguments I have to pass to whatever is in charge of launching my program. Here is the output:
{
"
c
o
u
l
d
n
o
t
s
t
a
r
t
kernel pid",application_controller,"error in config file \"./dev.config\" (none): configuration file not found"}
c
o
u
l
d
n
o
t
s
t
a
r
t
k
e
r
n
e
l
p
id (application_controller) (error in config file "./dev.config" (none): configuration file not found)
Crash dump is being written to: erl_crash.dump...
d
o
n
e
erl exit code:1
erl exit with code 1
How do I configure VS Code to debug? What is lacking?