我要自学网首页网站建设,优秀的设计网站,ps网站交互设计,做网站后台学什么专业最近公司一个产品在AIX5.3上#xff0c;运行若干天后#xff0c;经常coredump#xff0c;反复加日志后#xff0c;逐渐定位到是调用strdup函数后#xff0c;没有释放空间所导致。 在AIX5.3进行了测试#xff0c;发现连续malloc后的现象如下#xff1a;1#xff… 最近公司一个产品在AIX5.3上运行若干天后经常coredump反复加日志后逐渐定位到是调用strdup函数后没有释放空间所导致。 在AIX5.3进行了测试发现连续malloc后的现象如下1连续分配4k测试进程coredump(宕)2连续分配8K测试进程coredump(宕)3连续分配12k测试进程coredump(宕)4连续分配12k1测试进程coredump(宕)5连续分配12k256测试进程coredump(宕)6连续分配12k384测试进程coredump(宕)7连续分配12k448测试进程coredump(宕)8连续分配12k511测试进程coredump(宕)9连续分配12k512不宕malloc调用失败返回010连续分配16K不宕malloc调用失败返回011连续分配14k不宕malloc调用失败返回012连续分配13k不宕malloc调用失败返回0 测试程序如下#include stdio.h#include string.h int main(){ char * p; int i1; while(i) { p(char *)malloc(144);/*连续分配内存不释放*/ printf(i%d, p%x, /n, i, p); if(pNULL) break; if(i%1000000) sleep(1); if(pNULL) break; }} 为什么分配不同的内存块后现象不一致不解待查。。。 转载于:https://www.cnblogs.com/java201408/archive/2008/09/16/3901014.html