学习一门语言,当学习那些基本语法的时候,我们常常会忽略它的程序调试,当程序稍微复杂一点的时候,我们不能保证程序的完全正确,我们会为其发愁,这时,程序的调试就变得相当重要了。
在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
分享到:
相关推荐
这份"Erlang游戏程序学习完整PDF手册"是一份全面介绍Erlang在游戏开发中应用的学习资料,包含了Erlang的基础知识、并发原理以及在游戏开发中的实践案例。 Erlang语言的设计理念源自于Ericsson公司为解决电信系统中...
Erlang的交互式Shell(Eshell)允许开发者直接在命令行中运行代码,进行测试和调试。REPL(Read-Eval-Print Loop)环境进一步提高了开发效率。 9. **Erlang虚拟机(BEAM)** BEAM是Erlang的虚拟机,它执行Erlang...
函数式编程的特性使Erlang代码更易于理解和调试,因为它们通常没有副作用,这在并行计算中尤为重要。 3. **错误处理与容错** Erlang采用“let it crash”哲学,即系统中出现问题时,允许错误的进程崩溃,然后由...
通过实际运行和调试这些代码,你可以深入学习Erlang的编程实践,包括: - 并发编程示例:例如创建和管理进程,进程间通信(IPC)以及错误处理策略。 - 数据结构和模式匹配应用:例如如何使用Erlang的列表、元组和...
8. **测试和调试**:Erlang提供了`rebar3`这样的工具进行项目管理和测试。附书代码可能包含单元测试和集成测试的例子。 通过阅读和实践这些附书代码,你可以更好地理解和掌握Erlang语言的核心概念和技术,提升你的...
10. **测试和调试**:Erlang提供了`eunit`测试框架和`observer`工具来帮助开发者进行单元测试和系统监控。 通过深入研究《Erlang程序设计(第二版)》的随书源码,你可以逐步掌握这些关键知识点,并提升在实际项目...
Erlang是一种面向并发的、函数式编程语言,由...熟悉这些概念和Erlang的编程范式后,你就可以开始构建高效、容错的并发应用程序了。无论是网络服务器、实时通信系统,还是大规模分布式应用,Erlang都能提供强大的支持。
学习并发性和Erlang处理并发的方式背后的原理,编写高效的Erlang程序同时保持代码整洁易读,发现Erlang如何满足分布式系统的要求,轻松添加简单的图形用户界面,学习Erlang的跟踪机制来调试并发和分布式系统,使用...
4. **错误调试**:Erlang的错误处理机制,如shell的使用、日志和调试工具。 5. **REPL(Read-Eval-Print Loop)**:Erlang shell的使用,它是学习和测试Erlang代码的重要工具。 6. **实际应用案例**:可能包含...
我们看到"otp_win64_23.2.exe",这是一个可执行文件,代表Open Telecom Platform (OTP)的Windows 64位版本,OTP是Erlang生态系统的核心部分,包含了开发、调试和运行Erlang应用程序所需的各种库和服务。这个文件是...
5. **并发与分布式系统支持**:Erlang以其轻量级进程和消息传递为基础的并发模型著名,新版本可能会加强这方面的能力,更好地支持分布式应用程序。 6. **编译器和工具链**:Erlang的编译器和构建工具可能也得到了...
此外,这本书还会讨论Erlang的模块系统、类型系统以及如何利用REPL(Read-Eval-Print Loop)进行调试和测试。 这两本书的结合,为学习Erlang提供了全面的视角。《Erlang and OTP in Action》以其实践导向,帮助...
BEAM是Erlang的字节码解释器,模拟器可以用于开发阶段模拟运行和测试Erlang代码,有助于调试程序和优化性能。 #### 7. 内存管理 Erlang的内存管理是非常高效的,它使用了一种特殊的垃圾回收机制来确保低延迟。了解...
5. **错误处理和调试**:讨论在CNode中处理Erlang错误和异常的方法,以及如何利用Erlang的调试工具来排查问题。 6. **性能优化**:提供关于如何最大限度地提高CNode与Erlang节点之间通信效率的提示和最佳实践。 7....
在使用Erlang进行开发时,了解Erlang的REPL(Read-Eval-Print Loop)是很有帮助的,通过erl命令启动,可以快速测试代码和调试问题。Erlang还有强大的模块系统,每个文件对应一个模块,模块内包含函数定义。 OTP库...
Distel是Erlang的调试工具,提供了功能强大的调试和测试功能。 readers可以从Distel官方网站下载最新的版本。安装Distel非常简单,只需要解压缩下载的文件,并将其添加到Emacs的加载路径中。 四、配置Erlang mode ...
Erlang/OTP(Open Telecom Platform)是Erlang编程环境的基础,它包括了Erlang虚拟机(BEAM)、标准库和一系列强大的工具,如模块编译器、调试器、性能监视器等。OTP提供了一套设计模式和库,帮助开发者构建可靠、...
二郎助手的核心特性在于其全面的Erlang支持,包括语法高亮、代码自动完成、错误检查和调试功能。作为一个基于VS2005开发的项目,它继承了Visual Studio家族的强大编辑器功能,并且针对Erlang语言进行了优化。这意味...
- 在Erlang应用程序中,加载NIF并进行测试。 7. **性能与调试**: - 谈论如何评估NIF的性能,并可能涉及一些基准测试。 - 提供了一些调试NIF的技巧,比如使用`erl_nif_trace`和日志记录。 通过学习Rustler编写...