Skip to content
Snippets Groups Projects
Select Git revision
  • 2286e78f5cbc8c8401b2c71d1b92a00e303da19a
  • master default protected
  • 9.0
  • 8.0
  • 7.8
  • 7.6
  • 7.4
  • 7.2
  • 7.0
  • 0.6
  • rosuav/latex-markdown-renderer
  • rxnpatch/rxnpatch
  • marcus/gobject-introspection
  • rxnpatch/8.0
  • rosuav/pre-listening-ports
  • nt-tools
  • rosuav/async-annotations
  • rosuav/pgsql-ssl
  • rxnpatch/rxnpatch-broken/2023-10-06T094250
  • grubba/fdlib
  • grubba/wip/sakura/8.0
  • v8.0.2004
  • v8.0.2002
  • v8.0.2000
  • v8.0.1998
  • v8.0.1996
  • v8.0.1994
  • v8.0.1992
  • v8.0.1990
  • v8.0.1988
  • v8.0.1986
  • rxnpatch/clusters/8.0/2025-04-29T124414
  • rxnpatch/2025-04-29T124414
  • v8.0.1984
  • v8.0.1982
  • v8.0.1980
  • v8.0.1978
  • v8.0.1976
  • v8.0.1974
  • v8.0.1972
  • v8.0.1970
41 results

IPv6.pmod

Blame
  • dmalloc.h 10.58 KiB
    /*
    || This file is part of Pike. For copyright information see COPYRIGHT.
    || Pike is distributed under GPL, LGPL and MPL. See the file COPYING
    || for more information.
    */
    
    #ifndef DMALLOC_H
    #define DMALLOC_H
    
    PMOD_EXPORT extern void *debug_xalloc(size_t);
    PMOD_EXPORT extern void debug_xfree(void *);
    PMOD_EXPORT extern void *debug_xmalloc(size_t);
    PMOD_EXPORT extern void *debug_xcalloc(size_t,size_t);
    PMOD_EXPORT extern void *debug_xrealloc(void *,size_t);
    PMOD_EXPORT char *debug_xstrdup(const char *src);
    
    #if defined (HAVE_EXECINFO_H) && defined (HAVE_BACKTRACE)
    /* GNU libc provides some tools to inspect the stack. */
    #include <execinfo.h>
    typedef void *c_stack_frame;
    
    #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
    
    #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)
     * 'T': memory map template
     * 'M': memory map
     */
    typedef char *LOCATION;
    #define LOCATION_TYPE(X) ((X)[0])
    #define LOCATION_NAME(X) ((X)+1)
    #define LOCATION_IS_DYNAMIC(X)						\
      (LOCATION_TYPE (X)=='D' || LOCATION_TYPE (X) == 'B')
    
    #ifdef DMALLOC_TRACE
    #define DMALLOC_TRACELOGSIZE 131072
    
    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
    
    #ifdef DO_PIKE_CLEANUP
    extern int exit_with_cleanup;
    extern int exit_cleanup_in_progress;
    #define DO_IF_PIKE_CLEANUP(X) X
    #else