pike.git / src / dmalloc.h

version» Context lines:

pike.git/src/dmalloc.h:21:      #define DUMP_C_STACK_TRACE() do { \    c_stack_frame bt[100]; \    int n = backtrace (bt, 100); \    backtrace_symbols_fd (bt, n, 2); \    } while (0)      #else   #undef DMALLOC_C_STACK_TRACE   #define DUMP_C_STACK_TRACE() do {} while (0) - #endif + #endif /* defined (HAVE_EXECINFO_H) && defined (HAVE_BACKTRACE) */      #define DMALLOC_NAMED_LOCATION(NAME) \    (("NS" __FILE__ ":" DEFINETOSTR(__LINE__) NAME )+1)      #define DMALLOC_LOCATION() DMALLOC_NAMED_LOCATION("")      /* Location types in loc[0]:    * 'S': static (DMALLOC_NAMED_LOCATION)    * 'D': dynamic (dynamic_location)    * 'B': dynamic with backtrace (debug_malloc_update_location_bt)
pike.git/src/dmalloc.h:54:   extern char *dmalloc_tracelog[DMALLOC_TRACELOGSIZE];   extern size_t dmalloc_tracelogptr;      #define DMALLOC_TRACE_LOG(X) (dmalloc_tracelog[ dmalloc_tracelogptr = (dmalloc_tracelogptr +1 )%DMALLOC_TRACELOGSIZE ] = (X))      #endif /* DMALLOC_TRACE */      #ifdef PIKE_DEBUG   PMOD_EXPORT extern int gc_external_refs_zapped;   PMOD_EXPORT void gc_check_zapped (void *a, TYPE_T type, const char *file, INT_TYPE line); - #endif + #endif /* PIKE_DEBUG */      #ifdef DO_PIKE_CLEANUP   extern int exit_with_cleanup;   extern int exit_cleanup_in_progress;   #define DO_IF_PIKE_CLEANUP(X) X   #else   #define DO_IF_PIKE_CLEANUP(X) - #endif + #endif /* DO_PIKE_CLEANUP */      typedef void describe_block_fn (void *);      #ifdef DEBUG_MALLOC   struct memhdr;      void dump_memhdr_locations(struct memhdr *from,    struct memhdr *notfrom,    int indent);   struct memhdr *alloc_memhdr(void);
pike.git/src/dmalloc.h:87: Inside #if defined(DEBUG_MALLOC)
  PMOD_EXPORT void dmalloc_trace(void *);   PMOD_EXPORT void dmalloc_register(void *, int, LOCATION);   PMOD_EXPORT int dmalloc_unregister(void *, int);   PMOD_EXPORT void *debug_malloc(size_t, LOCATION);   PMOD_EXPORT void *debug_calloc(size_t, size_t, LOCATION);   PMOD_EXPORT void *debug_realloc(void *, size_t, LOCATION);   PMOD_EXPORT void debug_free(void *, LOCATION, int);   PMOD_EXPORT char *debug_strdup(const char *, LOCATION);   void reset_debug_malloc(void);   PMOD_EXPORT int dmalloc_check_allocated (void *p, int must_be_freed); - #if 0 - void dmalloc_check_block_free(void *, LOCATION, char *, describe_block_fn *); - #endif +    PMOD_EXPORT void dmalloc_free(void *p);   PMOD_EXPORT int debug_malloc_touch_fd(int, LOCATION);   PMOD_EXPORT int debug_malloc_register_fd(int, LOCATION);   PMOD_EXPORT void debug_malloc_accept_leak_fd(int);   PMOD_EXPORT int debug_malloc_close_fd(int, LOCATION);   PMOD_EXPORT int dmalloc_mark_as_free(void*,int);      PMOD_EXPORT void *debug_malloc_update_location(void *, LOCATION);   PMOD_EXPORT void *debug_malloc_update_location_ptr(void *, ptrdiff_t, LOCATION);   PMOD_EXPORT void *debug_malloc_update_location_bt (void *p, const char *file,
pike.git/src/dmalloc.h:134:   #define debug_malloc_pass_named(X,NAME) debug_malloc_update_location((void *)(X),DMALLOC_NAMED_LOCATION(" " NAME))   #define dmalloc_touch_struct_ptr(TYPE,X,MEMBER) ((TYPE)debug_malloc_update_location_ptr((void *)(X), ((ptrdiff_t)& (((TYPE)0)->MEMBER)), DMALLOC_LOCATION()))      /* These also save the call stack if support for that exists. Beware    * that this can take a lot of extra memory - for temporary use only. */   #define debug_malloc_touch_bt(X) debug_malloc_update_location_bt ((void *)(X), __FILE__, __LINE__, NULL)   #define debug_malloc_touch_named_bt(X,NAME) debug_malloc_update_location_bt ((void *)(X), __FILE__, __LINE__, (NAME))      #define xalloc(X) ((void *)debug_malloc_update_location((void *)debug_xalloc(X), DMALLOC_NAMED_LOCATION(" xalloc")))   #define xcalloc(N, S) ((void *)debug_malloc_update_location((void *)debug_xcalloc(N, S), DMALLOC_NAMED_LOCATION(" xcalloc"))) + #define xmalloc(X) ((void *)debug_malloc_update_location((void *)debug_xmalloc(X), DMALLOC_NAMED_LOCATION(" xmalloc"))) + #define xrealloc(N, S) ((void *)debug_malloc_update_location((void *)debug_xrealloc(N, S), DMALLOC_NAMED_LOCATION(" xrealloc"))) + #define xstrdup(X) ((void *)debug_malloc_update_location((void *)debug_xstrdup(X), DMALLOC_NAMED_LOCATION(" xstrdup")))   #define xfree(X) debug_xfree(debug_malloc_update_location((X), DMALLOC_NAMED_LOCATION(" free")))   PMOD_EXPORT void debug_malloc_dump_references(void *x, int indent, int depth, int flags);   #define dmalloc_touch(TYPE,X) ((TYPE) debug_malloc_pass (X))   #define dmalloc_touch_named(TYPE,X,NAME) ((TYPE) debug_malloc_pass_named (X, NAME))   void debug_malloc_dump_fd(int fd);   #define dmalloc_touch_svalue(X) do { \    const struct svalue *_tmp = (X); \    if (REFCOUNTED_TYPE(TYPEOF(*_tmp))) { \    debug_malloc_touch(_tmp->u.refs); \    } \
pike.git/src/dmalloc.h:201:   #define calloc dlcalloc   #define realloc dlrealloc   #define memalign dlmemalign   #define valloc dlvalloc   #define pvalloc dlpvalloc   /* No define for mallinfo since there's a struct with the same name. */   #ifdef strdup   #undef strdup   #endif   #define strdup debug_xstrdup - #endif +     -  + #endif /* USE_DL_MALLOC */ +    #define dmalloc_touch_fd(X) (X)   #define dmalloc_register_fd(X) (X)   #define dmalloc_accept_leak_fd(X)   #define dmalloc_close_fd(X) (X)   #define dmfree(X) free((X))   #define dmalloc_accept_leak(X) (void)(X)   #define DMALLOC_LINE_ARGS   #define DMALLOC_POS   #define DMALLOC_PROXY_ARGS   #define debug_malloc_dump_references(X,x,y,z)
pike.git/src/dmalloc.h:227:   #if defined(DYNAMIC_MODULE) && defined(__NT__) && !defined(USE_DLL)   #define xmalloc debug_xmalloc   #define xrealloc debug_xrealloc   #define xfree debug_xfree   #define xstrdup debug_xstrdup   #else   #define xmalloc malloc   #define xrealloc realloc   #define xfree free   #define xstrdup strdup - #endif + #endif /* defined(DYNAMIC_MODULE) && defined(__NT__) && !defined(USE_DLL) */      #define dbm_main main   #define DO_IF_DMALLOC(X)   #define DO_IF_NOT_DMALLOC(X) X   #define dmalloc_trace(X)   #define dmalloc_register(X,Y,Z)   #define dmalloc_unregister(X,Y) 1   #define debug_free(X,Y,Z) free((X))   #define debug_malloc_name(P,FN,LINE)   #define debug_malloc_copy_names(p,p2) 0