- 博客(7)
- 收藏
- 关注
原创 free源码分析---2
free源码分析—_int_free根据上一章的分析可知,如果一个chunk不是由mmap分配得到,最后会调用_int_free进行释放。void __libc_free(void *mem) { ... p = mem2chunk(mem); if (chunk_is_mmapped(p)){ ... } ar_ptr =
2015-12-15 23:22:45 4028
原创 free源码分析---1
free源码分析本章继续之前的glibc中的malloc源码分析开始分析free的源码,malloc的源码分析可以查看同类别下的《malloc源码分析—1》到《malloc源码分析—5》,因为free的源码中有一些结构和malloc相似的地方就不会做过多的介绍了。首先在glibc的malloc.c中有如下定义,strong_alias( __libc_free, __cfree)we
2015-12-13 22:32:20 4690
原创 malloc源码分析---5
malloc源码分析—sysmalloc本章主要分析sysmalloc的代码,在《malloc源码分析—2》中已经分析了sysmalloc的一部分,主要针对分配去没有初始化的情况。本章查看余下的代码,static void * sysmalloc(INTERNAL_SIZE_T nb, mstate av) { mchunkptr old_top; INTERNAL_S
2015-12-12 23:15:17 3333 1
原创 malloc源码分析---4
malloc源码分析—4上一章分析了_int_malloc中的fastbin、smallbin和部分largebin的处理,本章继续往下看代码,static void * _int_malloc(mstate av, size_t bytes) {... for (;;) { int iters = 0; while ((victim = un
2015-12-09 21:08:39 3217
原创 malloc源码分析---3
malloc源码分析—_int_malloc上一章分析了_int_malloc的前面一小部分,本章继续往下看,static void * _int_malloc(mstate av, size_t bytes) { ... if ((unsigned long) (nb) <= (unsigned long) (get_max_fast ())) { i
2015-12-07 21:01:03 3969
原创 malloc源码分析---2
malloc源码分析—_int_malloc根据上一章的分析,malloc会调用__libc_malloc分配内存,__libc_malloc会调用malloc_hook_ini 进行初始化,然后回调__libc_malloc函数,这时候会执行_int_malloc开始分配内存,定义在malloc.c中,因为非常长,这里分段来看,_int_malloc第一部分static void *
2015-12-05 15:40:14 7160 1
原创 malloc源码分析---1
malloc源码分析本文分析malloc的源码,首先从glibc开始,首先看malloc.c文件中的一段定义,strong_alias (__libc_malloc, __malloc) strong_alias (__libc_malloc, malloc)strong_alias是GNU C中的定义,编译器判定这里malloc是__libc_malloc的别名,__libc_m
2015-12-01 00:34:27 15327 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人