如何调试Erlang程序
2013-05-21 22:33
253 查看
调试是程序开发过程中的非常重要的过程,对于某些调试可能是开发过程中最难的一步,
熟练的掌握调试工具和方法,可以提升我们调试的效率。
Erlang的debugger是一个gui的调试工具。本文将介绍如何使用此工具。
1 编译
只有编译时加上debug_info的模块才能被调试
在erlang shell中加上debug_info标志如下
1>c(MODULE, debug_info).
使用erlc的例子如下:
erlc +debug_info ms.erl
2. 启动
调试器的启动可以通过debugger:start()或者im().
启动可以悬着模式,默认是global模式即所有已知节点此模块
3. 指定要调试模块
默认是不会有调试的进程,只有指定哪些模块要调试,执行这些模块是,就能对执行此代码的进程进行调试,
被指定为调试模块的过程被命名为interpreted module。
通过菜单项Module->Interpret选择文件,没有debug信息的文件将提示失败,
加载完成之后,就可以通过Module->MODULE->view查看源代码,在代码行双击即可设置断点。
4. 调试
当一个模块别标志为interpreted之后,我们在此模块代码设置断点,之后启动的进程都会进入调试状态。
我们也可以通过菜单Process->Attach,attach到一个运行中的进程。
5。特殊情况
我们使用otp的behavior时,我们自动模块都是一些call back,
正在运行otp behavior的代码,我们看到进程会处于idle状态。
熟练的掌握调试工具和方法,可以提升我们调试的效率。
Erlang的debugger是一个gui的调试工具。本文将介绍如何使用此工具。
1 编译
只有编译时加上debug_info的模块才能被调试
在erlang shell中加上debug_info标志如下
1>c(MODULE, debug_info).
使用erlc的例子如下:
erlc +debug_info ms.erl
2. 启动
调试器的启动可以通过debugger:start()或者im().
启动可以悬着模式,默认是global模式即所有已知节点此模块
3. 指定要调试模块
默认是不会有调试的进程,只有指定哪些模块要调试,执行这些模块是,就能对执行此代码的进程进行调试,
被指定为调试模块的过程被命名为interpreted module。
通过菜单项Module->Interpret选择文件,没有debug信息的文件将提示失败,
加载完成之后,就可以通过Module->MODULE->view查看源代码,在代码行双击即可设置断点。
4. 调试
当一个模块别标志为interpreted之后,我们在此模块代码设置断点,之后启动的进程都会进入调试状态。
我们也可以通过菜单Process->Attach,attach到一个运行中的进程。
5。特殊情况
我们使用otp的behavior时,我们自动模块都是一些call back,
正在运行otp behavior的代码,我们看到进程会处于idle状态。
相关文章推荐
- erlang中如何调试程序
- erlang中如何调试程序?
- 如何调试Erlang程序
- nodejs开发中如何调试基于多进程的程序
- 如何用googleChrome调试Android程序呢?_Stetho
- 如何让程序crash时生成coredump文件并用gdb调试
- 最短路径的程序---学会如何调试
- 西门子200如何实现远程监控和程序调试
- 如何调试DirectX3D程序
- Keil调试程序如何查看变量
- 如何调试手机上使用WAP网络的程序
- 人生苦短我用python[0x02] 如何调试python程序
- 如何用Nsight调试C# OpenGL程序
- 【受够了系列】如何在手机端调试脚本程序?
- 谈谈如何调试程序BUG (vs2012 cocos2dx)
- 如何调试发布在IIS上的ASP.NET程序
- 如何联机调试和发布程序(99$)
- Unix:一个用make编译好的程序如何调试
- 在linux中如何编译C程序,使之成为可执行文件?如何调试?
- 如何使用GDB调试PHP程序