完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在4.1.0版本下使用sqlite软件包,update的sqlite文件(不知道为什么直接update的一运行就报(obj != object) assertion failed at function:rt_object_init, line number:358, 而从github下载的就能运行),
运行一段时间后发现使用内存不断增大,用memtrace工具确定是操作数据库的线程导致,请问造成内存泄漏到底是我应用程序的问题还是软件包本身的问题,该怎么排查呢?硬件使用的nuc980dk61yc void app_sqlite3_thread(void *argument) { sqlite3_initialize(); sqlite3 *db; |
|
相关推荐
3个回答
|
|
是申请了没有正确释放还是软件包本身有问题?
|
|
|
|
照理来说我已经正确释放了,不清楚具体什么原因导致。网上有种说法是在linux下占用内存变大是因为sqlite缓存问题,目前我已经在通电挂着了,挂几天看看内存是会一直增加还是增加到一定程度后不再增加
|
|
|
|
对着代码仔细核对了最可疑的sqlite3_exec函数中关于最后一个二级指针的形参、内部处理代码,从这部分代码看不出什么问题。
错误msg的指向的内存,在返回值不为0的时候才在sqlite3_exec函数内部malloc,然后lz的代码也进行了free。 比较感兴趣,关注一下,看看lz后续的调试结果。 要不试着屏蔽一下sqlite3_exec,看看是否依然发生内存泄漏,别被memtrace的指向带偏了方向。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
529 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
2000 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1174 浏览 0 评论
1674 浏览 0 评论
1439 浏览 0 评论
74752 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 01:55 , Processed in 0.745066 second(s), Total 75, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号