【原创】Erlang 之 debugger 调试简介

  1. 云栖社区>
  2. 博客>
  3. 正文

【原创】Erlang 之 debugger 调试简介

摩云飞 2016-05-11 14:35:49 浏览2201
展开阅读全文
Erlang 提供了一种图形化的源码级别调试器 -- debugger。在一些情况下,可以用于对代码进行单步跟踪调试。下面举例说明如何使用这个工具。 

首先需要明确的是,若想要在调试器中启用某个模块,必须先让调试器 解释 该模块。调试器同时需要 .erl 源文件(用于显示源码)和 .beam 字节码文件(需要带有调试信息)。 
编译带调试信息的 .beam 文件,要求在编译 .erl 文件时使用 +debug_info 标志。例如 
1
erlc +debug_info -o ebin src/*.erl

 以一个之前学习 mochiweb 使用的 demo 为例。源码位置如下 
 

启动 erl,切换工作路径。 
 

启动 debugger 调试器,此时会弹出 Monitor 窗口。 
 

选择需要调试的 .erl 文件(Module->Interpret),在需要调试的代码位置双击设置断点。 
 

 

按照 .app 文件中的依赖关系启动相应的应用。 
 

成功启动后,会停在你之前设置的断点处(如果设置的断点位于应用启动时的执行路径上)。此时,可以通过 Step、Next、Continue 和 Finish 按钮进行调试。 
 

      若想跟踪进入其他 module 的代码,则需要和上面一样,通过 Module->Interpret 添加相应的 .erl 文件。例如,在添加 mochiweb_example_sup.erl 文件后,点击 Continue 则可以执行到下一个断点处(需要事先在该模块中设置好断点)。 

 
采用类似的方法就可以调试 erlang 的代码了。 


注:在按需启动依赖的相应应用时,若提示 already_started 则可以按如下方式停止 
1
application:stop(mochiweb_example).


网友评论

登录后评论
0/500
评论
摩云飞
+ 关注