⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mpatrol.h

📁 debug source code under unix platform.
💻 H
📖 第 1 页 / 共 3 页
字号:
/* The details of a single memory allocation. */typedef struct __mp_allocinfo{    void *block;            /* pointer to block of memory */    size_t size;            /* size of block of memory */    __mp_alloctype type;    /* type of memory allocation */    unsigned long alloc;    /* allocation index */    unsigned long realloc;  /* reallocation index */    unsigned long thread;   /* thread identifier */    unsigned long event;    /* event of last modification */    char *func;             /* calling function name */    char *file;             /* file name in which call took place */    unsigned long line;     /* line number at which call took place */    __mp_allocstack *stack; /* call stack details */    char *typestr;          /* type stored in allocation */    size_t typesize;        /* size of type stored in allocation */    void *userdata;         /* user data associated with allocation */    int allocated : 1;      /* allocation was allocated */    int freed : 1;          /* allocation has been freed */    int marked : 1;         /* allocation has been marked */    int profiled : 1;       /* allocation has been profiled */    int traced : 1;         /* allocation has been traced */    int internal : 1;       /* allocation is internal */}__mp_allocinfo;/* The details of a particular function symbol. */typedef struct __mp_symbolinfo{    char *name;         /* symbol name */    char *object;       /* module symbol located in */    void *addr;         /* start address */    size_t size;        /* size of symbol */    char *file;         /* file name corresponding to address */    unsigned long line; /* line number corresponding to address */}__mp_symbolinfo;/* The details of the current heap state. */typedef struct __mp_heapinfo{    size_t acount; /* total number of allocated blocks */    size_t atotal; /* total size of allocated blocks */    size_t fcount; /* total number of free blocks */    size_t ftotal; /* total size of free blocks */    size_t gcount; /* total number of freed blocks */    size_t gtotal; /* total size of freed blocks */    size_t icount; /* total number of internal blocks */    size_t itotal; /* total size of internal blocks */    size_t mcount; /* total number of marked blocks */    size_t mtotal; /* total size of marked blocks */}__mp_heapinfo;/* The structure filled by mallinfo(). */struct mallinfo{    unsigned long arena;    /* total space in arena */    unsigned long ordblks;  /* number of ordinary blocks */    unsigned long smblks;   /* number of small blocks */    unsigned long hblks;    /* number of holding blocks */    unsigned long hblkhd;   /* space in holding block headers */    unsigned long usmblks;  /* space in small blocks in use */    unsigned long fsmblks;  /* space in free small blocks */    unsigned long uordblks; /* space in ordinary blocks in use */    unsigned long fordblks; /* space in free ordinary blocks */    unsigned long keepcost; /* cost of enabling keep option */};#ifndef NDEBUG#ifdef malloc#undef malloc#endif /* malloc */#ifdef calloc#undef calloc#endif /* calloc */#ifdef memalign#undef memalign#endif /* memalign */#ifdef valloc#undef valloc#endif /* valloc */#ifdef pvalloc#undef pvalloc#endif /* pvalloc */#ifdef alloca#undef alloca#endif /* alloca */#ifdef strdup#undef strdup#endif /* strdup */#ifdef strndup#undef strndup#endif /* strndup */#ifdef strsave#undef strsave#endif /* strsave */#ifdef strnsave#undef strnsave#endif /* strnsave */#ifdef strdupa#undef strdupa#endif /* strdupa */#ifdef strndupa#undef strndupa#endif /* strndupa */#ifdef realloc#undef realloc#endif /* realloc */#ifdef reallocf#undef reallocf#endif /* reallocf */#ifdef recalloc#undef recalloc#endif /* recalloc */#ifdef expand#undef expand#endif /* expand */#ifdef free#undef free#endif /* free */#ifdef cfree#undef cfree#endif /* cfree */#ifdef dealloca#undef dealloca#endif /* dealloca */#ifdef xmalloc#undef xmalloc#endif /* xmalloc */#ifdef xcalloc#undef xcalloc#endif /* xcalloc */#ifdef xstrdup#undef xstrdup#endif /* xstrdup */#ifdef xrealloc#undef xrealloc#endif /* xrealloc */#ifdef xfree#undef xfree#endif /* xfree */#ifdef memset#undef memset#endif /* memset */#ifdef bzero#undef bzero#endif /* bzero */#ifdef memccpy#undef memccpy#endif /* memccpy */#ifdef memcpy#undef memcpy#endif /* memcpy */#ifdef memmove#undef memmove#endif /* memmove */#ifdef bcopy#undef bcopy#endif /* bcopy */#ifdef memchr#undef memchr#endif /* memchr */#ifdef memmem#undef memmem#endif /* memmem */#ifdef memcmp#undef memcmp#endif /* memcmp */#ifdef bcmp#undef bcmp#endif /* bcmp */#ifdef MP_MALLOC#undef MP_MALLOC#endif /* MP_MALLOC */#ifdef MP_CALLOC#undef MP_CALLOC#endif /* MP_CALLOC */#ifdef MP_STRDUP#undef MP_STRDUP#endif /* MP_STRDUP */#ifdef MP_REALLOC#undef MP_REALLOC#endif /* MP_REALLOC */#ifdef MP_FREE#undef MP_FREE#endif /* MP_FREE */#ifdef MP_FAILURE#undef MP_FAILURE#endif /* MP_FAILURE */#if !MP_NOCPLUSPLUS#ifdef __cplusplus#if MP_NONEWDELETE#ifdef MP_NEW#undef MP_NEW#endif /* MP_NEW */#ifdef MP_NEW_NOTHROW#undef MP_NEW_NOTHROW#endif /* MP_NEW_NOTHROW */#ifdef MP_DELETE#undef MP_DELETE#endif /* MP_DELETE */#else /* MP_NONEWDELETE */#ifdef new#undef new#endif /* new */#ifdef delete#undef delete#endif /* delete */#endif /* MP_NONEWDELETE */#endif /* __cplusplus */#endif /* MP_NOCPLUSPLUS */#define malloc(l) \    __mp_alloc((l), 0, MP_AT_MALLOC, MP_FUNCNAME, __FILE__, __LINE__, NULL, 0, \               0)#define calloc(l, n) \    __mp_alloc((l) * (n), 0, MP_AT_CALLOC, MP_FUNCNAME, __FILE__, __LINE__, \               NULL, 0, 0)#define memalign(a, l) \    __mp_alloc((l), (a), MP_AT_MEMALIGN, MP_FUNCNAME, __FILE__, __LINE__, \               NULL, 0, 0)#define valloc(l) \    __mp_alloc((l), 0, MP_AT_VALLOC, MP_FUNCNAME, __FILE__, __LINE__, NULL, 0, \               0)#define pvalloc(l) \    __mp_alloc((l), 0, MP_AT_PVALLOC, MP_FUNCNAME, __FILE__, __LINE__, NULL, \               0, 0)#define alloca(l) \    __mp_alloc((l), 0, MP_AT_ALLOCA, MP_FUNCNAME, __FILE__, __LINE__, NULL, 0, \               0)#define strdup(p) \    __mp_strdup((p), 0, MP_AT_STRDUP, MP_FUNCNAME, __FILE__, __LINE__, 0)#define strndup(p, l) \    __mp_strdup((p), (l), MP_AT_STRNDUP, MP_FUNCNAME, __FILE__, __LINE__, 0)#define strsave(p) \    __mp_strdup((p), 0, MP_AT_STRSAVE, MP_FUNCNAME, __FILE__, __LINE__, 0)#define strnsave(p, l) \    __mp_strdup((p), (l), MP_AT_STRNSAVE, MP_FUNCNAME, __FILE__, __LINE__, 0)#define strdupa(p) \    __mp_strdup((p), 0, MP_AT_STRDUPA, MP_FUNCNAME, __FILE__, __LINE__, 0)#define strndupa(p, l) \    __mp_strdup((p), (l), MP_AT_STRNDUPA, MP_FUNCNAME, __FILE__, __LINE__, 0)#define realloc(p, l) \    __mp_realloc((p), (l), 0, MP_AT_REALLOC, MP_FUNCNAME, __FILE__, __LINE__, \                 NULL, 0, 0)#define reallocf(p, l) \    __mp_realloc((p), (l), 0, MP_AT_REALLOCF, MP_FUNCNAME, __FILE__, __LINE__, \                 NULL, 0, 0)#define recalloc(p, l, n) \    __mp_realloc((p), (l) * (n), 0, MP_AT_RECALLOC, MP_FUNCNAME, __FILE__, \                 __LINE__, NULL, 0, 0)#define expand(p, l) \    __mp_realloc((p), (l), 0, MP_AT_EXPAND, MP_FUNCNAME, __FILE__, __LINE__, \                 NULL, 0, 0)#define free(p) \    __mp_free((p), MP_AT_FREE, MP_FUNCNAME, __FILE__, __LINE__, 0)#define cfree(p, l, n) \    __mp_free((p), MP_AT_CFREE, MP_FUNCNAME, __FILE__, __LINE__, 0)#define dealloca(p) \    __mp_free((p), MP_AT_DEALLOCA, MP_FUNCNAME, __FILE__, __LINE__, 0)#define xmalloc(l) \    __mp_alloc((l), 0, MP_AT_XMALLOC, MP_FUNCNAME, __FILE__, __LINE__, NULL, \               0, 0)#define xcalloc(l, n) \    __mp_alloc((l) * (n), 0, MP_AT_XCALLOC, MP_FUNCNAME, __FILE__, __LINE__, \               NULL, 0, 0)#define xstrdup(p) \    __mp_strdup((p), 0, MP_AT_XSTRDUP, MP_FUNCNAME, __FILE__, __LINE__, 0)#define xrealloc(p, l) \    __mp_realloc((p), (l), 0, MP_AT_XREALLOC, MP_FUNCNAME, __FILE__, __LINE__, \                 NULL, 0, 0)#define xfree(p) \    __mp_free((p), MP_AT_XFREE, MP_FUNCNAME, __FILE__, __LINE__, 0)#define memset(p, c, l) \    __mp_setmem((p), (l), (unsigned char) (c), MP_AT_MEMSET, MP_FUNCNAME, \                __FILE__, __LINE__, 0)#define bzero(p, l) \    (void) __mp_setmem((p), (l), 0, MP_AT_BZERO, MP_FUNCNAME, __FILE__, \                       __LINE__, 0)#define memccpy(q, p, c, l) \    __mp_copymem((p), (q), (l), (unsigned char) (c), MP_AT_MEMCCPY, \                 MP_FUNCNAME, __FILE__, __LINE__, 0)#define memcpy(q, p, l) \    __mp_copymem((p), (q), (l), 0, MP_AT_MEMCPY, MP_FUNCNAME, __FILE__, \                 __LINE__, 0)#define memmove(q, p, l) \    __mp_copymem((p), (q), (l), 0, MP_AT_MEMMOVE, MP_FUNCNAME, __FILE__, \                 __LINE__, 0)#define bcopy(p, q, l) \    (void) __mp_copymem((p), (q), (l), 0, MP_AT_BCOPY, MP_FUNCNAME, __FILE__, \                        __LINE__, 0)#define memchr(p, c, l) \    __mp_locatemem((p), (l), NULL, (size_t) (c), MP_AT_MEMCHR, MP_FUNCNAME, \                   __FILE__, __LINE__, 0)#define memmem(p, l, q, m) \    __mp_locatemem((p), (l), (q), (m), MP_AT_MEMMEM, MP_FUNCNAME, __FILE__, \                   __LINE__, 0)#define memcmp(p, q, l) \    __mp_comparemem((p), (q), (l), MP_AT_MEMCMP, MP_FUNCNAME, __FILE__, \                    __LINE__, 0)#define bcmp(p, q, l) \    __mp_comparemem((p), (q), (l), MP_AT_BCMP, MP_FUNCNAME, __FILE__, \                    __LINE__, 0)#define MP_MALLOC(p, l, t) \    (p = (t *) __mp_alloc((l) * sizeof(t), MP_ALIGN(t), MP_AT_XMALLOC, \                          MP_FUNCNAME, __FILE__, __LINE__, #t, sizeof(t), 0))#define MP_CALLOC(p, l, t) \    (p = (t *) __mp_alloc((l) * sizeof(t), MP_ALIGN(t), MP_AT_XCALLOC, \                          MP_FUNCNAME, __FILE__, __LINE__, #t, sizeof(t), 0))#define MP_STRDUP(p, s) \    (p = __mp_strdup((s), 0, MP_AT_XSTRDUP, MP_FUNCNAME, __FILE__, __LINE__, 0))#define MP_REALLOC(p, l, t) \    (p = (t *) __mp_realloc((p), (l) * sizeof(t), MP_ALIGN(t), MP_AT_XREALLOC, \                            MP_FUNCNAME, __FILE__, __LINE__, #t, sizeof(t), 0))#define MP_FREE(p) \    do { __mp_free((p), MP_AT_XFREE, MP_FUNCNAME, __FILE__, __LINE__, 0); \         p = NULL; } while (0)#define MP_FAILURE(f) ((__mp_failhandler) NULL)#define __mp_check() \    __mp_checkheap(MP_FUNCNAME, __FILE__, __LINE__)#define __mp_vlocprintf(m, v) \    __mp_vprintfwithloc(MP_FUNCNAME, __FILE__, __LINE__, (m), (v))#ifdef __cplusplusextern "C"{#endif /* __cplusplus */extern __mp_errortype __mp_errno;void __mp_init(void);void __mp_reinit(void);void __mp_fini(void);int __mp_atexit(void (*)(void));unsigned long __mp_setoption(long, unsigned long);int __mp_getoption(long, unsigned long *);void *__mp_alloc(size_t, size_t, __mp_alloctype, MP_CONST char *,                 MP_CONST char *, unsigned long, MP_CONST char *, size_t,                 size_t);char *__mp_strdup(MP_CONST char *, size_t, __mp_alloctype, MP_CONST char *,                  MP_CONST char *, unsigned long, size_t);void *__mp_realloc(void *, size_t, size_t, __mp_alloctype, MP_CONST char *,                   MP_CONST char *, unsigned long, MP_CONST char *, size_t,                   size_t);void __mp_free(void *, __mp_alloctype, MP_CONST char *, MP_CONST char *,               unsigned long, size_t);void *__mp_setmem(void *, size_t, unsigned char, __mp_alloctype,                  MP_CONST char *, MP_CONST char *, unsigned long, size_t);void *__mp_copymem(MP_CONST void *, void *, size_t, unsigned char,                   __mp_alloctype, MP_CONST char *, MP_CONST char *,                   unsigned long, size_t);void *__mp_locatemem(MP_CONST void *, size_t, MP_CONST void *, size_t,                     __mp_alloctype, MP_CONST char *, MP_CONST char *,                     unsigned long, size_t);int __mp_comparemem(MP_CONST void *, MP_CONST void *, size_t, __mp_alloctype,                    MP_CONST char *, MP_CONST char *, unsigned long, size_t);unsigned long __mp_libversion(void);MP_CONST char *__mp_strerror(__mp_errortype);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -