BUG经历
来源:互联网 发布:域名别名解析 编辑:程序博客网 时间:2024/04/30 09:28
不同路径还原法
最近项目要求将公司原有采集推流工具将核心功能封装成dll,供第三方程序调用。Dll提供后第三方程序调用dll后释放偶尔会有崩溃问题。单步调试却没有发生任何问题,但是有个特殊现象引起我的注意。当进入主dll什么都不做直接关闭退出没有任何问题,按推流按钮调用推流接口,之后再停止推流,此时在关闭程序,程序必回崩溃。由此现象我初步断定是由于主程序已经退出,我的dll内部有游离线程没有退出,导致资源没有释放完毕导致的。为了验证自己的推测,在进入主程序后先看看各个线程运行状态如下:
按推流按钮,推流一段时间后结束推流。此时程序应该恢复到程序刚进入是的状态。在看测试程序的线程运行状态如下:
发现此时多了个TimeTickRtmp::TickThread线程。我去程序中去跟踪该线程果然退出该线程没有去显示的关闭回收资源。添加显示关闭该线程代码后果然第三方调用退出后不再崩溃,问题游刃而解。
从代码不同的路径进入相同逻辑状态,包括调用其它功能,再回来该逻辑状态。查看不同路径到这里时程序内存、线程、资源有何不同进而定位bug所在
0 0
- BUG经历
- c# BUG解决经历
- 一次难忘的Bug经历
- SSM项目的一些bug经历
- sql语句的case-end语句的疑似bug经历
- 捉虫经历:耦合度过高引入的一个bug
- 记录一个IOS开发Bug消除的经历
- 网友们经历过的最难调试的Bug
- 网友们经历过的最难调试的Bug
- 程序员经历过的最难调试的Bug是什么?
- 程序员经历过的最难调试的Bug是什么?
- 经历
- 经历
- 经历
- 经历
- 经历
- 经历
- 经历
- spring data hadoop操作hbase
- java常见数据校验(含银行卡luhn校验)
- laravel中的数组分页实现
- android实现对象写入XML,本地缓存
- 代码设置selectableItemBackground
- BUG经历
- jQuery表单选择器
- iTop4412开发板的模块配置方法
- CSS初始化
- 论文笔记:CTC
- Django & Docker项目结构实践 2
- 2016/11/10 1002. 二叉查找树的遍历
- 碎片为什么会导致mysql查询访问变慢
- UVa 11971 Polygon