C语言多线程内存管理模块创新
C语言多线程内存管理模块
摘要:一个多线程动态内存管理模块,可以有效地检测C语言中内存泄漏和内存越界等错误。
原理
分配
通过重新改写内存分配函数,把调用时的信息保存在一个节点中,节点中包括此内存分配的首地址,大小以及分配所在的源文件、函数、行号,并用一个HASH表来保存所有节点。
越界检测
为了检测写越界的错误,在用户申请的内存前后各增加了一定大小的内存作为监测区域,并初始化成预定值(0xdeadbeef)。如果发生越界写操作时,预定值就会发生改变, 即可检测到越界操作错误。
释放
重新改写内存释放函数free,释放时节点从HASH表中删除并进行越界检测。
查看
手动调用show_memory()或show_memory_summary()查看内存使用情况并进行越界检测。
以下涉及内存分配和内存释放的函数被重新改写:
malloc
calloc
realloc
strdup
strndup
asprintf
vasprintf
HASH表如下图所示:
节点结构如下:
static struct mm_region
{
struct mm_region *next;
char file[40]; /* 分配所在的文件 */
char func[40]; /* 分配所在的函数 */
unsigned int lineno; /* 分配所在的行 */
size_
您可能关注的文档
- 2015-2016学年七年级地理上册专题03天气与气候同步单元双基双测(B卷)(含解析)新人教版.doc
- 2015-2016学年云南省临沧市第一中学高二下学期期末考试历史试题(word版).doc
- 2015-2016七年级语文下册第三单元第14课《鲁提辖拳打镇关西》课件(新版)鄂教版.ppt
- 2015-2016学年人教A版必修一:函数的应用_单元测试.doc
- 2015-2016学年人教版必修3第10课《过秦论》教案7.doc
- 2015-2016学年人教B版高中数学课件必修3:第二章统计2.1《用样本的频率分布估计总体分布》(2课时).ppt
- 2015-2016学年人教版必修3第13课《宇宙的边疆》教案3.doc
- 2015-2016学年云南省保山市腾冲市高一(下)期末数学试卷(解析版).doc
- 2015---2016学年度第二学期闽清一中、莆田二中联考.doc
- 2015-2016学年人教版抛体运动单元测试.doc
- 新疆塔城地区第一高级中学2025-2026学年高一下学期学情自测物理试卷(含解析).docx
- 苏教版五年级上册数学 期中检测卷.doc
- 新疆维吾尔自治区昌吉回族自治州呼图壁县2025-2026学年九年级上学期1月期末英语试题(含解析).docx
- 新疆维吾尔自治区和田地区和田市2025-2026学年上学期八年级英语期末试卷(含解析).docx
- 四川省绵阳市游仙区2025-2026学年七年级上学期1月期末英语试题(含解析).docx
- 苏教版三年级上册数学 第三单元测试题.doc
- 四川省绵阳市梓潼县2025-2026学年八年级上学期1月期末物理试题(含解析).docx
- 四川省绵阳市盐亭县四校联考2025-2026学年八年级下学期物理学情自测(含解析).docx
- 房颤患者太极拳练习.pptx
- 苏教版五年级上册数学 期末检测卷.doc
最近下载
- 低压电工考试试题库及答案.doc VIP
- 易飞9.06erp操作手册.pdf VIP
- 萨提亚家庭治疗模式PPT.ppt VIP
- 工装夹具验收标准细则.docx VIP
- 某淀粉厂废水处理工艺设计说明书.pdf VIP
- 2026年高考政治一轮复习:统编版必修一《中国特色社会主义》选择题 专项练习题汇编(含答案解析).docx VIP
- 一种桥梁方墩柱爬行器.pdf VIP
- (高清版)B-T 26949.2-2022 工业车辆 稳定性验证 第2部分:平衡重式叉车.pdf VIP
- 2026年高考政治一轮复习:必修一《中国特色社会主义》选择题 专项练习题汇编(含答案).docx
- 小学数学一年级口算题100内加减综合练习不进位不退位.doc VIP
原创力文档

文档评论(0)