(转)linux下钩子函数 关于内存函数
(2013-05-09 02:32:16)
标签:
it |
转自:http://bise.aliapp.com/?p=59
转载者注:该程序在ubuntu 12.04下无法运行 需要修改
void (*__malloc_initialize_hook) (void) = my_mempool_init ;
为
void (*volatile __malloc_initialize_hook) (void) = my_mempool_init ;
何谓钩子函数,当一个函数挂载了钩子函数后,你执行这个函数时,实际执行的是钩子函数。
linux下内存函数可以定义自己的钩子函数,好像网络通讯库函数也可以。
下面,我们来看内存函数的钩子函数,首先看定义(在/usr/include/malloc.h里)
linux下内存函数可以定义自己的钩子函数,好像网络通讯库函数也可以。
下面,我们来看内存函数的钩子函数,首先看定义(在/usr/include/malloc.h里)
1
2 3 4 5 6 7 8 9 10 11 12 13 |
extern
extern extern extern extern extern |
接下来看我写的一个实例
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
#include
#include #include static static static static static { } static { } static { } static { } static { } static { } static { } void int { } |
输出结果为
1
2 |
malloc size:
free address: |
明显执行了钩子函数!