91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡(jiǎn)介

mtrace可以用來 跟蹤當(dāng)前 系統(tǒng)/模塊的內(nèi)存 使用情況 ,以及估算系統(tǒng)/模塊的占用內(nèi)存的極值 , 系統(tǒng)/模塊 卸載時(shí)的 內(nèi)存 泄露情況。

資源截圖

代碼片段和文件信息


#include?
#include?“mtrace.h“


#if(?FS_TRACE_MEM>2)

#elif(?FS_TRACE_MEM>0)???????//mode?12

#define??MH_MAGIC_MASK??0xFFFFFFFC
#define??MH_TYPE_MASK?????0x00000003

#define??MH_MAGIC_ALLOC?????????????0xCCCCCCCC
#define??MH_MAGIC_FREE?????????????0xEEEEEEEE
#define??MH_TYPE_C?0
#define??MH_TYPE_M?1
#define??MH_TYPE_R?2

typedef?struct
{
int?magic;???????????//0xcccc??low?nibble?for?type
int?size;

#if(?FS_TRACE_MEM&2)
int?logindex;
#endif
}meminfo;

#define??meminfo_len??sizeof(meminfo)

DEFINE_MEMSTAT(default_memstat);????????????//total?mem?trace?for?all?fs?



#if(?FS_TRACE_MEM&2)

#define?MAX_ALLOC_FILNAMELEN 32
#define?MEMLOG_STATEFREE????0

#define?thisfs_memlog???stat->log

static?void?init_memlog(memstat?*stat)
{
if(thisfs_memlog.flag&memstat_log_inited)
return?;

#if?0
char?*log?=(char?*)?raw_calloc(sizeof(char?*)thisfs_memlog.limit);
if?(!log)
{
mtrace_log_error(“Failed?to?calloc?%d?logs\n“?(long)thisfs_memlog.limit);
return?;
}

thisfs_memlog.logstr?=?(char?**)log;
#endif

for?(int?i=0;i {
thisfs_memlog.logstr[i]=MEMLOG_STATEFREE;
}
thisfs_memlog.max_index=-1;
thisfs_memlog.free_index=0;
thisfs_memlog.alloc_count=0;
thisfs_memlog.flag?|=?memstat_log_inited;

if(default_memstat.log.flag&memstat_log_inited)
return?;

//?default_memstat.log.limit?=?MAX_ALLOC_ENTRYS;
#if?0
log?=(char?*)?raw_calloc(sizeof(char?*)default_memstat.log.limit);
if?(!log)
{
mtrace_log_error(“Failed?to?calloc?%d?logs\n“?(long)default_memstat.log.limit);
return?;
}
thisfs_memlog.logstr?=?(char?**)log;
#endif

for?(?i=0;i? {
default_memstat.log.logstr[i]=MEMLOG_STATEFREE;
}?
default_memstat.log.max_index=-1;
default_memstat.log.free_index=0;
default_memstat.log.alloc_count=0;
default_memstat.log.flag?|=?memstat_log_inited;

}


#define?logfmt?“%d%d%d%s“
static?size_t?o_size;
static?char?o_file[MAX_ALLOC_FILNAMELEN];
static?int?o_line;
static?int?o_times;

static?int?register_log(meminfo?*pint?line?char?*filememstat?*stat)
{

int?ij;
int??retry=0;
size_t?size??=?p?->size;

init_memlog(stat);

p->logindex?=?memstat_log_index_invalid;

//use?the?already?log?entry?
for(?i=0?;i<=thisfs_memlog.max_index;i++)
{

if(thisfs_memlog.logstr[i]==MEMLOG_STATEFREE)
continue;

sscanf(thisfs_memlog.logstr[i]??logfmt??&o_times&o_size&o_line?o_file);
if(/*(o_size==size)&&*/(o_line==line)&&(strcmp(o_filefile)==0)&&o_times>0)
{
snprintf((char*)?thisfs_memlog.logstr[i]?MAX_ALLOC_FILNAMELEN?logfmt?o_times+1size+o_sizelinefile);
p->logindex?=?i;
return?0;
}
}


//create?new?log
if(thisfs_memlog.flag?&?memstat_log_allused)
{
mtrace_log_error(“all?used?out?now\n“);
return?-1;
}

j=thisfs_memlog.free_index;
if(thisfs_memlog.logstr[j])
{
mtrace_log_error(“already?used?now\n“)

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件????????754??2010-08-10?10:38??config.h

?????文件??????11338??2010-08-10?10:36??mtrace.c

?????文件???????2650??2010-08-10?10:27??mtrace.h

-----------?---------??----------?-----??----

????????????????14742????????????????????3


評(píng)論

共有 條評(píng)論

相關(guān)資源