opensips/kamailio gdb代码调试方法详解

本文详细介绍了如何对 Kamailio 和 Opensips 进行 gdb 代码调试,包括直接使用 GDB 运行服务以及在服务运行后附加调试。调试方法涵盖单进程和多进程模式,特别强调了对 TCP 和 UDP 处理进程的调试策略,以辅助开发者在遇到问题时定位和解决问题。
摘要由CSDN通过智能技术生成

        要对kamailio/opensips进行单步调试,就需要先了解其代码的结构及运行方式,kamailio/opensips使用Reactor和Proactor结合的IO网络模型,使用主进程负责监听网络,当有连接产生或首包到达时,就通过pipe将文件描述符发送给worker进程,worker进程就会负责此连接的数据取读、业务处理、数据发送等事情,然后再次等待此socket事件。当我们想要调试一段代码时,就先确认这段代码是运行在什么类型的进程中,通常用于处理SIP逻辑的代码都是在worker进程中执行的,下面是一个kamailio进程启动的实例:
[root@xx sipserver]# kamctl ps
Process::  ID=0 PID=6651 Type=attendant
Process::  ID=1 PID=6653 Type=udp receiver child=0 sock=172.16.0.16:53
Process::  ID=2 PID=6654 Type=udp receiver child=1 sock=172.16.0.16:53
Process::  ID=3 PID=6656 Type=udp receiver child=2 sock=172.16.0.16:53
Process::  ID=4 PID=6658 Type=udp receiver child=3 sock=172.16.0.16:53
Process::  ID=5 PID=6661 Type=slow timer
Process::  ID=6 PID=6662 Type=timer
Process::  ID=7 PID=6665 Type=MI FIFO
Process::  ID=8 PID=6668 Type=ctl handler
Process::  ID=9 PID=6669 Type=SNMP AgentX
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值