内存调试与实时 Linux 入门
内存调试工具
在软件开发过程中,内存调试是一项至关重要的工作,它有助于我们发现和解决内存泄漏、越界访问等问题。下面将介绍两款常用的内存调试工具:DUMA 和 MEMWATCH。
DUMA
DUMA 是一款功能强大的内存调试工具,其软件包可从 http://duma.sourceforge.com 下载。与 Electric Fence 相比,DUMA 功能更为强大,但也伴随着更高的复杂性。
经过实践,将 DUMA 软件包移动到与目标板共享的构建分区,然后使用本地的 gcc、g++ 和 ar 在目标板上进行构建,这种方式更为简便。如果将 NFS 分区导出到目标板,构建 DUMA 并不困难,且耗时不长。
需要注意的是,很多时候选择“本地构建”比花费大量时间去研究为什么 Makefile 或交叉编译的某些特性无法生成可从主机移植到目标板的二进制文件,是更好的解决方案。DUMA 的操作方式与 Electric Fence 类似,并且有自己的文档可供参考。
MEMWATCH
MEMWATCH 同样用于内存调试,它会替换常见的内存分配函数,如 malloc() 和 free(),并跟踪内存的分配和释放情况。在检测内存泄漏和违规操作方面,MEMWATCH 非常有效,例如忘记释放内存区域或多次释放同一内存区域等问题。不过,在检测指针错误方面,它的效率不如 Electric Fence,例如它无法检测到之前章节中提到的错误数组写入问题。
以下
超级会员免费看
订阅专栏 解锁全文

46

被折叠的 条评论
为什么被折叠?



