|

楼主 |
发表于 2024-8-12 11:54:43
|
显示全部楼层
谢谢佬的建议, 原来IAR还支持静态扫描, 涨知识了, 不过我们的项目没有使用IAR;
我刚刚尝试了一下封装一层malloc, 比如封装成my_malloc/free, 然后再my_malloc/free中进行mem_alloc_count这个自己设定的变量的加减, 然后打印这个count的数值, 观察它是否能稳定在一个范围内, 感觉效果一般般, 主要是需要改的地方太多了, 如果不加入__FILE__, __LINE__这类log的话, 定位效果差, 加上的话又要改一大堆地方.
然后因为我用了rt-thread系统, 他内部支持了一个组件叫memtrace, 这个组件可以list出来内存节点的起始地址与内存大小, 以及内存块的归属线程(malloc出这个内存的线程), 然后list出来后我保存为了一个文件, 通过beyond compare这类文件比较器来定位不一样的地方, 感觉还是蛮有用的 |
|