现在的位置: 首页 > 综合 > 正文

asterisk利器:部署asterisk项目到Netbeans进行实时调试(图解)

2013年12月25日 ⁄ 综合 ⁄ 共 1988字 ⁄ 字号 评论关闭
 

为了更好地使用Asterisk开发项目, 一个途径就是有针对性地学习、分析与项目有关的那部分asterisk源代码。虽然说代码是模块化的,但是赤手空拳地针对每个源文件进行学习,确实增加了一定的难度,如果能够借助某些工具来调试asterisk,将是多方便的一件事情呀!经过研究,终于把asterisk整个项目部署到了Linux下的netbeans 5.5.1 IDE上了,通过这个IDE,我们可以进行asterisk源代码的学习、调试,这样一举两得的事情,何乐而不为呢?废话不多说了,下面开始我们的工作吧:

系统环境

Linux: ubuntu 7.04

IDE: Netbeans 5.5.1 + C/C++ Pack+Subversion客户端插件

安装方法

l         安装Netbeans IDE                                                         

参照官网说明  

http://www.netbeans.org/community/releases/55/1/install_zh_CN.html

l         安装C/C++ Development Pack

 参照官网说明 

http://www.netbeans.org/community/releases/55/1/cnd-install_zh_CN.html

 

添加asterisk项目到netbeans

这一步是整个过程中最核心的一步,可以按下面的图示进行:

 

1.         使用netbeans,从服务器签出asterisk源代码到本地

(为了能从签出代码到本地然后以这个源代码创建netbeans项目,不要使用Linux安装了subversion后使用控制台以命令行的方式check out)

 

输入库的地址:http://svn.digium.com/svn/asterisk/trunk,点击下一步。


下面这一向导保持默认选项即可。

点击完成,等待从服务器接收完SVN库中的文件,接收完成后,将会弹出以下窗口:

 

选项第一个,进行下一步骤,创建项目,这时候弹出来下面的“新建项目“向导。

2.         创建Netbeans项目

 

在生成工具选项中,浏览从SVN服务器库中签出到本地的文件中的Makefile文件,选择它作为现有的Makefile文件。

 

点击下一步,进入第3步,这一步可以保持默认

 

点击下一步,进入第4步,也可以保持默认。

点击下一步,进入第5步,这一步也可保持默认

点击下一步,进入最后一步,进行项目名称和位置的设置,在这里我保持了默认,大家可以重新设定名称。

到这里我们就已经把asterisk整个项目源代码导入到了netbeans中,并生成了本地项目。

 

接下来我们就可以像传统那样执行三部曲,安装asterisk到指定目录,我们可以在所签出到本地的asterisk项目源代码的目录下,在控制终端中执行./configure&make&make install等操作。对应的编译也可以在netbeans下右击项目,选项重要文件--->Makefile,右击执行make,在这之前也可以新添加configure文件到这个重要文件目录中。

3.         当成功编译、安装asterisk后,就可以再回到netbeans进行asterisk的运行、调试了

在开始运行之前,需要指定启动asteriskc参数,右击项目,属性设置常规选项为-vvvvvvc

 

main函数中设置一个断点

点击F5,或者选择运行菜单下的调试主项目选项启动调试

需要说明的是,因为启动asterisk后要往本地几个目录中写入几个文件,如asterisk.pid或者日志文件messages等,所以如果碰到了启动失败的提示后,到相应的目录chmod 777赋予写的权限。

程序成功启动后,将在asterisk.c中的2610行的main()函数处停业,这也是asterisk的入门点,并弹出来程序终端,这也可以通过设置,在netbeans的输出控制台显示,但这样调试起来会不太方便,所以还是使用默认的,即Linux默认终端。如下图所示:

 

假如我想看看asterisk的Dynamic Module Loader是如何装载如个模块,可以在loader.c的 load_module函数设置一个断点,当程序运行到此处时可以通过单步调试查看整个过程。

 

关于如何使用netbeans的Debug功能以及其它的功能,大家可以参看官方网址给出的文档:http://cnd.netbeans.org/docs/index.html

本文档只针对如何调试asterisk项目,有关asterisk方面的请参考其它文档。

下载本文档:http://d.download.csdn.net/down/267275/lin_bei

 

抱歉!评论已关闭.