Ubuntu下运行程序出现的一些bug及记录

本文记录了作者在Ubuntu环境下对一个频繁重启的程序进行逐步调试和优化的过程,包括解决线程和互斥锁问题、改进摄像头数据获取方式、调整系统文件打开数量限制等方面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.该程序运行的环境是在ubuntu 下,程序基本定型.目前的状态是:只是偶尔重启。

     在深入程序内部时,我总是小心翼翼的,把未初始化的变量给初始化了,在类内的成员,需要初始化的,都在构造时初始化了,注意,不是赋值。

  然而,这看起来,效果不是很明显。

2. 在我注意到,程序有时候运行时,出现错误,这个提示是关于线程方面的。

于是,我在网上去找答案,去google ,去我经常去的博客网站,博客园,csdn, 去 stackoverflow.com

        在线程相关函数中,用到了互斥锁,于是有了这个__pthread_tpp_change_priority: Assertion异常

        在这个博客地址中,解决了这个问题, Assertion异常问题   

我 以为问题就是出现这里,其实不然。 重启的问题依旧存在。  依旧在道路上前进。

3. 开始更改取 摄像机数据 的方式。 在网上找到了live555 开源的项目。

     于是,有了后面的诸多问题。多线程,阻塞了怎么办,任务怎么调度等等。

     我 这边用到了是live555 的客户端程序 ,参考了这个链接 基于live555的客户端程序及ffmpeg解码  

     好了。问题又来了。用live555的代码收到的数据,并不能马上用,说这个数据要好好好处理,比如说解码,转换等。

     解码相关的地方,参考了雷神的一些博客。在此也给出链接:  ffmpeg音视频编码零基础学习  

    这个地方差不多用了一个月了。直到最后,解码出图像,程序看起来运行成功了。其实,还是不然。


    路慢慢其修远兮!  ...

4.  开始对重启的事件进行总结了,几乎是3个小时内,有时是2个小时,程序重启。 而分析程序 重启的条件是:  与服务端 断开了连接。

     这件事情不能这样不了了之。

     现在只能,个个击破了,一个单元功能来测试。一个一个来。

    像往常一样。  程序在重启中,只不过这次重启没成功,一直在打印,open file many 相关的字样,大概意思是打开的文件过多。导致失败...

    这个问题好办,修改系统默认的打开个数,把这数值调大。

    Linux 打开文件数too many open files

 5.  再后来 ,我注释了与window 平台的功能。上线再测试了 。程序重启的频率少了很多,目前还是探索中。

 6.  未完待续。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Teleger

你的支持是我前进的方向

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值