12-----关于调试SRS和follow-fork-mode,detach-on-fork的说明

2024-03-01 16:50

本文主要是介绍12-----关于调试SRS和follow-fork-mode,detach-on-fork的说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 follow-fork-mode,detach-on-fork

看下面的图表。

follow-fork-modedetach-on-fork说明
parenton只调试主进程( GDB 默认)
childon只调试子进程
parentoff同时调试两个进程, gdb 跟主进程, 子进程 block 在 fork 位置
childoff同时调试两个进程, gdb 跟子进程, 主进程 block 在 fork 位置

2 查看一下进程和线程的信息

//1 查看一下进程和线程的信息
info inferiors;
info threads;//2 或者切换进程和线程的信息
inferior <infer number>;
thread <thread number>;//3 查看对应的模式
show follow-fork-mode
show detach-on-fork

3 以调试SRS为例

下面我们以调试SRS为例。注意,调试SRS时,必须将配置默认的守护进程模式关掉,否则会出现deatch xxx种问题,导致无法调试。
在这里插入图片描述

1)gdb ./objs/srs
2)set args -c conf/srs.conf					//gdb时好像必须这样设置配置,否则出错
3)set follow-fork-mode child					//设置默认跟踪子进程,因为我看SRS源码最终使用子进程处理逻辑
4)set detach-on-fork off						//看上面,即开启调试多个进程,并且主进程 block 在 fork 位置
5)  b main
6)b SrsConfig::get_vhost_http_remux_enabled	//这里是SRS读取配置的关键,断点打这样方便观察读配置初始化的流程,SrsConfig::get_vhost_http_remux_enabled可以通过srs.conf的配置节点名搜索找到

在这里插入图片描述

然后按下r运行,方便观察进程和线程的信息。下图可以看到,目前进行和线程各自只有一个,两个模式就是我们刚刚设置的。
在这里插入图片描述

给大家看一下最终的堆栈结果。
在这里插入图片描述

若想继续调试,大家需要自行推流测试。下面简单列出一个推流命令。

ffmpeg -re -rtsp_transport tcp -an -i "rtsp://admin:admin@192.168.1.116/Streaming/Channels/1" 
-vcodec copy -an -f flv "rtmp://127.0.0.1/live/test"

这篇关于12-----关于调试SRS和follow-fork-mode,detach-on-fork的说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/763136

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

vscode中文乱码问题,注释,终端,调试乱码一劳永逸版

忘记咋回事突然出现了乱码问题,很多方法都试了,注释乱码解决了,终端又乱码,调试窗口也乱码,最后经过本人不懈努力,终于全部解决了,现在分享给大家我的方法。 乱码的原因是各个地方用的编码格式不统一,所以把他们设成统一的utf8. 1.电脑的编码格式 开始-设置-时间和语言-语言和区域 管理语言设置-更改系统区域设置-勾选Bata版:使用utf8-确定-然后按指示重启 2.vscode

log4j2相关配置说明以及${sys:catalina.home}应用

${sys:catalina.home} 等价于 System.getProperty("catalina.home") 就是Tomcat的根目录:  C:\apache-tomcat-7.0.77 <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n" /> 2017-08-10

android应用中res目录说明

Android应用的res目录是一个特殊的项目,该项目里存放了Android应用所用的全部资源,包括图片、字符串、颜色、尺寸、样式等,类似于web开发中的public目录,js、css、image、style。。。。 Android按照约定,将不同的资源放在不同的文件夹中,这样可以方便的让AAPT(即Android Asset Packaging Tool , 在SDK的build-tools目

CRtmpServer转推流到Nginx Rtmp及SRS(SimpleRtmpServer)的经历

转自:http://blog.csdn.net/fengyily/article/details/42557841 本人一直用的是CRtmpServer服务,在CRtmpServer服务中根据自已的想法也加入了许多功能,如通过http接口来加载配置等,苦于不支持HLS,自已添加ts分片水平又有限,思来想去决定借助SimpleRtmpServer的HLS功能。说干就干,马上查找相关资源