系列文章目录
C++模版基础
代码地址
GitHub - CHENLitterWhite/CPPWheel: CPP自封装的库
/*
* 作者: 干饭小白
* 时间: 2023-09-25 16:00:00:00
*
* 说明:
* 只能检测 malloc 和 free,无法检测 new delete
*/
#pragma once
// #define CHECKMEM
#define OPEN_TOTAL_INFO 0x001
#define OPEN_SINGLE_INFO 0x010
#define OPEN_THREAD_INFO 0x100
#include
相关说明
1.不支持new 和 delete。尝试过,发现效果不好,new本身内部会malloc和free,想要支持多线程,容易加锁两次。delete不方便宏替换。
2.支持多线程,不支持多进程,如果想要支持多进程,相关的控制部分定义到共享内存中
3.定义CHECKMEM,开启内存检查
使用案例
#include "mem.h"
int main()
{
init_gc("./mem", OPEN_TOTAL_INFO | OPEN_SINGLE_INFO | OPEN_THREAD_INFO);
void* p1 = malloc(1);
void* p2 = malloc(1);
void* p3 = malloc(1);
free(p1);
free(p2);
free(p2);
total_gc();
return 0;
}
部分效果图
多线程下定位具体线程 ==> OPEN_THREAD_INFO
统计信息 ==> OPEN_TOTAL_INFO
单文件快速定位 ==> OPEN_SINGLE_INFO