Erlang的单步调试工具

1
2
im().
debugger:start().

准备

1
2
3
4
5
6
7
8
9
10
11
-module(test_im).
-export([test/0]).

-define(ECHO(Msg), io:format("~p~n", [Msg])).

test() ->
?ECHO(1),
?ECHO(2),
?ECHO(3),
?ECHO(4),
?ECHO(5).

编译

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Erlang/OTP 18 [erts-7.3] [64-bit] [smp:4:4] [async-threads:10]

Eshell V7.3 (abort with ^G)
1> pwd().
C:/Users/duxin
ok
2> cd("C:/Blog/code").
C:/Blog/code
ok
3> pwd().
C:/Blog/code
ok
4> c("test_im.erl", debug_info).
{ok,test_im}
5>
5> test_im:test().
1
2
3
4
5
ok
6>

启动调试工具

1
2
6> im().
<0.43.0>

导入要调试的模块


选择断点方式

调用要调试的模块

1
7> test_im:test().

通过右下角状态栏可查看当前参数状态
tep,Next,Continue与GDB的用法相同