第五章 内存分配 / 5.2 内存数据结构

openssl内存分配数据结构是一个内部数据结构,定义在crypto/mem_dbg.c中。如下所示:

typedef struct app_mem_info_st

{    

       unsigned long thread;

       const char *file;

       int line;

       const char *info;

       struct app_mem_info_st *next; /* tail of thread's stack */

       int references;

} APP_INFO;

              typedef struct mem_st

              {

                     void *addr;

                     int num;

                     const char *file;

                     int line;

                     unsigned long thread;

                     unsigned long order;

                     time_t time;

                     APP_INFO *app_info;

              } MEM;

              各项意义:

              addr:分配内存的地址。

              num:分配内存的大小。

              file:分配内存的文件。

              line:分配内存的行号。

              thread:分配内存的线程ID

              order:第几次内存分配。

              time:内存分配时间。

       app_info:用于存放用户应用信息,为一个链表,里面存放了文件、行号以及线程ID等信息。

              references:被引用次数。