`

erlang方便的打印调试信息

 
阅读更多

目前调试一个模块时比较麻烦,需要重新编译成调试版本,即增加DEBUG宏或debug_info等信息重新编译。

 

想要达到这种效果:想调试某个模块时直接调用test:debug()自动转换成调试模式,这样方便一点。

即效果如下:

 

Eshell V5.8.3  (abort with ^G)
1> c(test).
{ok,test}
2> test:test(1).
2
3> test:debug().
{ok,test}
4> test:test(1).
test(1) = 2
2
5> 
 

 

 

于是可以这样写:

 

-module(test).

-compile(export_all).

-ifdef(DEBUG).
-define(LOG(Format), io:format(Format)).
-define(LOG(Format, Data), io:format(Format, Data)).

-else.
-define(LOG(Format), ok).
-define(LOG(Format, Data), ok).

-endif.

test(N) when is_integer(N) ->
    R = N + N,
    ?LOG("test(~p) = ~p~n", [N, R]),
    R.

debug() ->
    debug(true).

debug(true) ->
    c:c(?MODULE, [{d, 'DEBUG'}]);
debug(false) ->
    c:c(?MODULE, []).
分享到:
评论

相关推荐

    webDebugger:Erlang代码断点调试工具web版

    #WeDebugger-Web版Erlang代码断点调试工具 ...添加调试配置:调试项目时,需要添加debug_info信息,rebar.config需要添加如下配置 {erl_opts, [debug_info]}. 启动:在目标项目启动入口添加如下调用以启动webDebugger

    erlang整理的一些心得和lunix查看cpu和内存信息的方法

    在IT领域,Erlang是一种强大的并发...了解并熟练掌握Erlang和Linux的这些工具和概念,对于开发、调试和维护高性能的分布式系统至关重要。通过持续学习和实践,你可以提升自己的IT技能,更好地应对各种复杂的技术挑战。

    erlang_版本24.3.4.4

    - **Erlang shell(REPL)**:交互式环境,用于测试和调试代码。 - **Erlang的数据类型**:包括原子(atom)、整数、浮点数、字符串、列表、元组、位串等。 - **Pattern Matching**:Erlang的匹配操作符`=`允许在...

    erlang编程 Introducing Erlang

    **Erlang编程:Introducing Erlang** Erlang是一种函数式编程语言,由爱立信在1986年开发,主要用于构建高可用性、容错性和并发性的分布式系统。"Introducing Erlang"是Simon St. Laurent撰写的一本入门级教程,...

    erlang22最新下载包

    6. **编译器和工具链**:Erlang的编译器和构建工具可能也得到了改进,使得代码编译更快,调试更方便。 7. **兼容性**:Erlang22可能会改进与其他软件和硬件平台的兼容性,包括新的操作系统版本和硬件架构。 要使用`...

    erlang资源

    4. **错误调试**:Erlang的错误处理机制,如shell的使用、日志和调试工具。 5. **REPL(Read-Eval-Print Loop)**:Erlang shell的使用,它是学习和测试Erlang代码的重要工具。 6. **实际应用案例**:可能包含...

    Erlang开发环境搭建

    Distel是Erlang的调试工具,提供了功能强大的调试和测试功能。 readers可以从Distel官方网站下载最新的版本。安装Distel非常简单,只需要解压缩下载的文件,并将其添加到Emacs的加载路径中。 四、配置Erlang mode ...

    erlang9.rar

    在使用Erlang进行开发时,了解Erlang的REPL(Read-Eval-Print Loop)是很有帮助的,通过erl命令启动,可以快速测试代码和调试问题。Erlang还有强大的模块系统,每个文件对应一个模块,模块内包含函数定义。 OTP库...

    Erlang_CNode用户指

    5. **错误处理和调试**:讨论在CNode中处理Erlang错误和异常的方法,以及如何利用Erlang的调试工具来排查问题。 6. **性能优化**:提供关于如何最大限度地提高CNode与Erlang节点之间通信效率的提示和最佳实践。 7....

    erlang深度分析.pdf

    Erlang社区提供了多种工具帮助开发和调试,例如调试器erts_debug和observer用于监控运行时性能。hotreplace模块允许代码热替换,不必重启节点即可更新模块。 #### 5. Erlang的分布式应用 Erlang的分布式应用通过VM...

    Erlang深度分析

    调试是软件开发中不可或缺的环节,Erlang提供了许多强大的调试工具,例如Erlang的crash dump分析工具、snooper消息监听器等,它们帮助开发者在开发和测试阶段快速定位和解决问题。 #### 4. 并发与网络 ##### 4.1 ...

    erlang25.0 windows版本

    Erlang是一种高级编程语言,特别适用于并发、分布式和实时系统。它由Ericsson公司开发,主要用于构建高可用性、容错性和可扩展性的软实时系统。Erlang的25.0版本是该语言的一个更新,针对Windows操作系统进行了优化...

    二郎助手erlang开发工具、erlang编辑器

    二郎助手的核心特性在于其全面的Erlang支持,包括语法高亮、代码自动完成、错误检查和调试功能。作为一个基于VS2005开发的项目,它继承了Visual Studio家族的强大编辑器功能,并且针对Erlang语言进行了优化。这意味...

    两本erlang电子书

    此外,这本书还会讨论Erlang的模块系统、类型系统以及如何利用REPL(Read-Eval-Print Loop)进行调试和测试。 这两本书的结合,为学习Erlang提供了全面的视角。《Erlang and OTP in Action》以其实践导向,帮助...

    Erlang/OTP 26.2.1

    Erlang/OTP 26.2.1,Erlang,OTP,26.2.1

    erlang安装包.zip

    erlang安装包

    rustler编写erlang nif

    - 它自动处理内存管理和错误处理,使得Rust与Erlang之间的交互更加安全和方便。 3. **Rustler工作流程**: - 创建一个新的Rust项目,添加必要的依赖,包括`rustler`库。 - 在Rust代码中定义NIF函数,遵循Rustler...

    erlang23.2版windows64位.zip

    在压缩包子文件的文件名称列表中,我们看到"otp_win64_23.2.exe",这是一个可执行文件,代表Open Telecom Platform (OTP)的Windows 64位版本,OTP是Erlang生态系统的核心部分,包含了开发、调试和运行Erlang应用程序...

    erlang 部分源码

    Erlang是一种面向并发的、动态类型的编程语言,主要用于...通过深入研究这个压缩包中的源代码,开发者可以获得对Erlang语言核心机制的深入理解,这对于优化Erlang代码、调试问题或开发新的Erlang工具都是宝贵的资源。

    windows下安装Erlang环境

    **脚本语言**:Erlang也可作为脚本语言使用,编写分布式应用尤其方便,因为它的分布式特性和虚拟机支持使得代码跨平台运行变得简单。 安装Erlang的过程包括下载官方提供的安装包,双击运行并按照向导完成安装,之后...

Global site tag (gtag.js) - Google Analytics