学习一门语言,当学习那些基本语法的时候,我们常常会忽略它的程序调试,当程序稍微复杂一点的时候,我们不能保证程序的完全正确,我们会为其发愁,这时,程序的调试就变得相当重要了。
    在erlang环境搭建好之后,它会默认自带一个调试的工具---erlang debugger(这个名字起得很好(^_^)).
    Erlang debugger的简单使用:
    假设我们有一个写好的test.erl.
    1.编译模块。编译模块的时候,应该这样编译
c(test,[debug_info]).
    2.打开debugger。在erlang shell中输入"im()."即可。
    3.设置断点。在打开的monitor中,把左下方的Auto Attach下的三个选项全部选上,即First Call, On Break, On Exit(这个细节是很重要的)。然后选择Module->Interpret Modules,在打开的窗口中,选择test.erl源文件。这时,在刚才的Monitor窗口中,双击左上脚的test,在打开的"View Module test"新窗口中,选择Break->Function Break,选择一个自己的函数(当然,在Break当中,可以选择其他的方式进行断点的设置)。至此,断点设置成功。
    4.开始调试。在erlang shell当中输入要调用的函数(就像平时我们没有调试的时候,直接输入模块调用那样。eg:   test:reverse([1, 2, 3, 4]).  这个是我随便输的)。然后大家在打开的窗口当中就可以调试自己的程序了。
    小结:本文是一个很简单的erlang debugger的使用,还有许多的细节我自己也没有弄懂,但是希望本文能够为大家起到抛砖引玉的作用。具体的调试工具的使用,可以参考: http://www.erlang.org/doc/apps/debugger/debugger_chapter.html

一个参考的视频地址:
 http://files.cnblogs.com/goldli/test_tuple.swf

前提:erl文件  必须用debug_info选项进行编译。否则会出现 Invalid beam file or no abstract code: error

编译方式: make:all([debug_info]). | c(test.erl,debug_info).

基本调试方法:<br>
im/0:打开调试器<br>
i/1 :把文件添加到调试器中<br>
ni  :针对多个Node的用法<br>
n/1 :与i/1相反<br>
nn/1:与ni/1相反<br>
interrepted/0:列出所有要调试的Module<br>
file/1:显示源文件<br>
break/2:添加断点<br>
delete_break/2删除断点<br>
break_in/3:在具体函数中添加断点<br>
del_break_in/3:在具体函数中删除断点<br>
no_break/0:删除所有断点<br>
no_break/1:删除某个Module的所有断点<br>
disable_break/2:使某个模块的断点失效<br>
enable_break/2:恢复某个模块的断点<br>
action_at_break/1:设置断点的状态,实验中发现enable不起作用<br>
all_breaks/0:显示所有的断点状态<br>
all_breaks/1:显示指定所有的断点状态<br>
snapshot/0:回放调试进程信息<br>

最新文章

  1. MSYS2环境下编译X265
  2. Rafy 领域实体框架 - 公司内部培训视频
  3. Await, and UI, and deadlocks! Oh my!
  4. 006.udp转发包并代理访问服务器总结
  5. JAVA序列化的作用
  6. bzoj 2744: [HEOI2012]朋友圈
  7. UI学习笔记---第四天
  8. xml写代码
  9. js 行列操作
  10. 1、Sencha cmd学习笔记(一) 使你的sencha cmd跑起来
  11. vpdn1
  12. 2019浙大校赛--G--Postman(简单思维题)
  13. CentOS7下-bash: nano: command not found
  14. WPF 选择电脑文件显示路径,弹出资源管理器,打开文件
  15. Java.WeakReference-SoftReference-PhantomReference
  16. note:debugging requires the debug connect session system privilege
  17. PAT 1074 宇宙无敌加法器(20)(代码+思路+测试点分析)
  18. Bootstrap验证
  19. “借刀杀人”之CSRF拿下盗图狗后台
  20. Linux命令学习与使用2

热门文章

  1. 学习笔记:Vue——插槽
  2. 机器学习算法中怎样选取超參数:学习速率、正则项系数、minibatch size
  3. web服务器软件(Nginx,Apache,IIS,Lighttpd)介绍
  4. CentOS7安装docker 18.06
  5. 【MemSQL Start[c]UP 3.0 - Round 1 C】 Pie Rules
  6. ThreadLocal深入理解与内存泄露分析
  7. 关于android的2.2与4.4的文件读取的一点发现
  8. MongoDb 查询时常用方法
  9. docker基础(二)
  10. Mac怎么设置wifi热点