`
RicardoX
  • 浏览: 77213 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
文章分类
社区版块
存档分类
最新评论

asterisk 代码调试

阅读更多
   前一两年就调试过asterisk,记下来的资料不知道搞哪去了。
    昨天帮助公司新同事,再试了一次,发现asterisk和以前弄那会还是有一些变化。
调试详细的步骤如下:
    首先,我们需要生成有调试信息的板本。
    进入asterisk代码的目录
    ./configure
    make menuselect
这个地方要输入S
再 make 就可以生成再调试信息的板本。
 
我们要调试的模块是chan_sip.c,由于asterisk这些模块都是动态加载的,所以在
gdb asterisk 的时候是找不到chan_sip.so的调试信息的。
在以前我调试的时候的方法在,在load_dynamic_module处打断点,然后在dlopen的时候单步进入,就可以到chan_sip.c的load_modules
函数,但现在我发现,这也是不行的。
 
所以我换了一种方式:
查看chan_sip.c:load_module的代码
load_module通过调用 ast_channel_register(&sip_tech)在asterisk里面注册一个channel,而ast_channel_register在现在的调试信息里面是可以找到的。
所以从这个地方入手,在ast_channel_register处打断点。
 
在发现是chan_sip.c调用这个函数的时候停下来。
bt 一下,bt为打开函数调用堆栈信息,
看到调用他的上一层函数为chan_sip.c:load_module
然后f 1,切换函数堆栈,然后就可以在chan_sip.c里面打断点了。
 
就可以实现对chan_sip.c的调试。
 
   呵呵,这玩意技术学会了,放在这,好久不用,确实是会手生啊!
lixiaomail
2008-10-24

分享到:
评论

相关推荐

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

    标题中的“部署asterisk项目到Netbeans进行实时调试(图解)”是指将开源的PBX系统Asterisk的源代码导入到Netbeans集成开发环境中,以便进行代码学习、调试和项目开发。Asterisk是一个强大的通信平台,允许开发者构建...

    asterisk 学习日志

    在学习Asterisk时,使用命令`asterisk -vvvg –cps -C`可以开启更详细的调试模式,这对于排查问题和理解系统运行状态非常有帮助。同时,了解如何阅读和分析日志文件(如`backtrace.txt`)也是必要的技能。 2. **...

    Asterisk 客户端.rar

    客户端和AMI文档会包含如何诊断问题、调试代码以及实施定期维护的信息,以确保系统的稳定运行。 综上所述,"Asterisk客户端.rar"这个压缩包包含了丰富的Asterisk客户端和Asterisk Manager API的学习资料,对于想要...

    Asterisk 11.0.0beta

    但通常,一个Asterisk的安装包可能包括源代码、编译脚本、配置文件、示例脚本、库文件以及相关文档。在安装和配置Asterisk时,这些文件将扮演不同的角色,例如源代码用于编译构建,配置文件用于定制系统行为,文档则...

    Asterisk Cookbook.pdf

    循环结构在编写复杂Dialplan时非常有用,它允许系统重复执行某段代码直到满足特定条件为止。这部分介绍了如何在Dialplan中实现循环,以应对诸如自动语音应答系统(IVR)中的菜单选择等场景。 #### 1.3 Controlling ...

    Asterisk 1.6

    6. **配置和管理工具**:Asterisk 1.6可能包含了改进的管理和监控工具,如Asterisk管理界面(AMI)和命令行接口,使系统管理员能更方便地配置、监控和调试系统。 7. **录音和日志记录**:Asterisk具有强大的录音...

    asterisk-gui

    3. **日志查看**:提供日志查看功能,帮助用户追踪错误和调试问题。 4. **安全控制**:支持用户权限管理,确保只有授权的用户才能访问和更改设置。 5. **扩展性**:Asterisk GUI通常与其他模块如FreePBX、Elastix...

    asterisk手册大全

    2. **abe_tech_manual.pdf**:Asterisk Build Environment(Asterisk构建环境)技术手册,可能会详细介绍如何构建和定制Asterisk环境,包括编译源代码,添加自定义模块,以及调试技巧。 3. **zapata.conf.pdf**:...

    asterisk语音识别

    在你提到的"asterisk-speech-recog-0.5"压缩包中,可能包含了实现这一功能的源代码和AGI脚本。 1. Asterisk:Asterisk是一个开源的IP电话系统,它提供了PBX(Private Branch eXchange)的功能,能够处理电话呼叫、...

    asterisk部署文档

    - 解压libpri源代码,进入目录,运行`make`和`make install`进行编译和安装。 5. **安装DAHDI驱动**: - 解压DAHDI驱动,编译并安装。DAHDI是Asterisk用于处理模拟和数字电话线路的驱动框架。 6. **安装DAHDI-...

    FSK.rar_asterisk

    《 Asterisk 源代码深度解析》 Asterisk,这个源自开源社区的VoIP(Voice over Internet Protocol)电话系统,已经成为全球范围内广泛使用的PBX(Private Branch Exchange)软件。其核心价值在于提供了灵活的电话...

    Asterisk 系统的g.729, g.723编解码模块安装指南

    - 使用提供的命令行,下载 IPP 相关的软件包,包括.g729-rob.diff(G.729的补丁文件)、ipp样本代码以及IPP库。 - 创建一个授权文件,并将许可文件的内容粘贴进去。 4. **安装IPP软件包**: - 解压并安装IPP库,...

    centos下的Asterisk安装_2

    然后,你可以使用 `asterisk -r` 登录到 CLI,进一步检查和调试系统。 总结来说,安装 Asterisk 在 CentOS 上需要安装必要的依赖库,获取并编译 Asterisk 源代码,以及配置和测试安装后的系统。整个过程可能需要...

    Asterisk常用命令

    6. **NoOp**: 不执行任何操作,常用于调试时打印变量值。 7. **Perl**: 使用Perl脚本。 8. **PHP**: 使用PHP脚本。 9. **Read**: 通过DTMF读取变量值。 10. **TXTCIDName**: 从TXT记录中查找来电者姓名。 11. **User...

    asterisk服务器配置文件.rar

    在实现FGcom语音对讲功能时,我们需要在这个文件中设置适当的拨号计划,确保当用户拨打特定的号码或短代码时,能够启动对讲模式。 2. **sip.conf**:这个文件管理SIP(Session Initiation Protocol)用户代理,包括...

    Qt-Asterisk-Desktop:用于Asterisk PBX系统的Qt桌面应用程序

    - Qt Creator:官方提供的集成开发环境,支持代码编辑、调试和构建。 - Asterisk SDK:用于与Asterisk PBX系统进行交互的开发包。 - Git:版本控制系统,用于获取Qt-Asterisk-Desktop-master压缩包中的源代码。 **...

    Asterisk commander:星号管理器PHP CLI-开源

    Asterisk命令行界面(CLI)是与Asterisk交互的主要方式,它允许管理员执行配置更改、监控系统状态、调试问题等任务。CLI通常通过SSH或telnet访问,而Asterisk Commander则提供了一种更友好的Web界面来执行这些命令...

    j asterisk manager interface-开源

    8. **配置文件**:`log4j.properties`是一个日志配置文件,它定义了Jami如何记录和管理日志信息,这对于调试和监控系统行为非常重要。 9. **开源软件**:Jami作为开源软件,意味着它的源代码是公开的,开发者可以...

    Asterisk voicemail live console-开源

    "在控制台(扬声器)上收听语音邮件录音"这一功能意味着系统会通过控制台的扬声器播放录音,这对于测试、调试或者在没有图形界面的情况下使用Asterisk特别有用。同时,"在呼叫者连接到语音邮件时接听电话"意味着当有...

Global site tag (gtag.js) - Google Analytics