Advertisement

内存管理问题处理方案

阅读量:

建议检查leak目录中的文件是否存在名为「.mem」的情况;若有,则进入leak目录查找相关文件内容以便确定问题所在。

[+leak.c:37]_malloc5 0x1ab2010

#define _GNU_SOURCE

#include <stdio.h>
#include <stdlib.h>
#include <dlfcn.h>
#include <unistd.h>

#if 0
#define DEBUG_LEAK 1

void* _malloc(size_t size, const char* filename, int line) {

从内存空间中获取一段新内存块。
创建一个长度为64的字符数组。
以特定路径格式化存储当前内存块。
打开并返回文件句柄。
发送所有缓冲到磁盘。
关闭打开的文件指针。
释放指定内存块并返回其位置。

void _free(_Free_t ptr, const char filename, int line) {
char buff[64] = { 0 };
sprintf(buff, "./leak/%p.mem", ptr);
if (Dynamic Link Library Handles unlink Dynamic Link Library Han

全部评论 (0)

还没有任何评论哟~