Mercurial > hg > nginx
changeset 4223:1b779cb69dc8
malloc() debugging on MacOSX.
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 24 Oct 2011 15:46:48 +0000 |
parents | 2dd6c7cb211a |
children | 4c4997de65b8 |
files | src/core/nginx.c src/core/ngx_slab.c src/os/unix/ngx_darwin.h src/os/unix/ngx_darwin_config.h src/os/unix/ngx_darwin_init.c src/os/unix/ngx_freebsd.h src/os/unix/ngx_freebsd_config.h src/os/unix/ngx_freebsd_init.c src/os/unix/ngx_linux_config.h src/os/unix/ngx_os.h src/os/unix/ngx_posix_config.h src/os/unix/ngx_solaris_config.h src/os/win32/ngx_win32_config.h |
diffstat | 13 files changed, 48 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/src/core/nginx.c Mon Oct 24 12:59:01 2011 +0000 +++ b/src/core/nginx.c Mon Oct 24 15:46:48 2011 +0000 @@ -203,9 +203,7 @@ ngx_cycle_t *cycle, init_cycle; ngx_core_conf_t *ccf; -#if (NGX_FREEBSD) ngx_debug_init(); -#endif if (ngx_strerror_init() != NGX_OK) { return 1;
--- a/src/core/ngx_slab.c Mon Oct 24 12:59:01 2011 +0000 +++ b/src/core/ngx_slab.c Mon Oct 24 15:46:48 2011 +0000 @@ -46,10 +46,10 @@ #else -#if (NGX_FREEBSD) +#if (NGX_HAVE_DEBUG_MALLOC) #define ngx_slab_junk(p, size) \ - if (ngx_freebsd_debug_malloc) ngx_memset(p, 0xD0, size) + if (ngx_debug_malloc) ngx_memset(p, 0xD0, size) #else
--- a/src/os/unix/ngx_darwin.h Mon Oct 24 12:59:01 2011 +0000 +++ b/src/os/unix/ngx_darwin.h Mon Oct 24 15:46:48 2011 +0000 @@ -8,6 +8,7 @@ #define _NGX_DARWIN_H_INCLUDED_ +void ngx_debug_init(void); ngx_chain_t *ngx_darwin_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit); @@ -15,5 +16,7 @@ extern int ngx_darwin_hw_ncpu; extern u_long ngx_darwin_net_inet_tcp_sendspace; +extern ngx_uint_t ngx_debug_malloc; + #endif /* _NGX_DARWIN_H_INCLUDED_ */
--- a/src/os/unix/ngx_darwin_config.h Mon Oct 24 12:59:01 2011 +0000 +++ b/src/os/unix/ngx_darwin_config.h Mon Oct 24 15:46:48 2011 +0000 @@ -87,6 +87,7 @@ #define NGX_HAVE_OS_SPECIFIC_INIT 1 +#define NGX_HAVE_DEBUG_MALLOC 1 extern char **environ;
--- a/src/os/unix/ngx_darwin_init.c Mon Oct 24 12:59:01 2011 +0000 +++ b/src/os/unix/ngx_darwin_init.c Mon Oct 24 15:46:48 2011 +0000 @@ -14,6 +14,8 @@ int ngx_darwin_kern_ipc_somaxconn; u_long ngx_darwin_net_inet_tcp_sendspace; +ngx_uint_t ngx_debug_malloc; + static ngx_os_io_t ngx_darwin_io = { ngx_unix_recv, @@ -55,6 +57,34 @@ }; +void +ngx_debug_init() +{ +#if (NGX_DEBUG_MALLOC) + + /* + * MacOSX 10.6, 10.7: MallocScribble fills freed memory with 0x55 + * and fills allocated memory with 0xAA. + * MacOSX 10.4, 10.5: MallocScribble fills freed memory with 0x55, + * MallocPreScribble fills allocated memory with 0xAA. + * MacOSX 10.3: MallocScribble fills freed memory with 0x55, + * and no way to fill allocated memory. + */ + + setenv("MallocScribble", "1", 0); + + ngx_debug_malloc = 1; + +#else + + if (getenv("MallocScribble")) { + ngx_debug_malloc = 1; + } + +#endif +} + + ngx_int_t ngx_os_specific_init(ngx_log_t *log) {
--- a/src/os/unix/ngx_freebsd.h Mon Oct 24 12:59:01 2011 +0000 +++ b/src/os/unix/ngx_freebsd.h Mon Oct 24 15:46:48 2011 +0000 @@ -8,6 +8,7 @@ #define _NGX_FREEBSD_H_INCLUDED_ +void ngx_debug_init(void); ngx_chain_t *ngx_freebsd_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit); @@ -17,7 +18,7 @@ extern ngx_uint_t ngx_freebsd_sendfile_nbytes_bug; extern ngx_uint_t ngx_freebsd_use_tcp_nopush; -extern ngx_uint_t ngx_freebsd_debug_malloc; +extern ngx_uint_t ngx_debug_malloc; #endif /* _NGX_FREEBSD_H_INCLUDED_ */
--- a/src/os/unix/ngx_freebsd_config.h Mon Oct 24 12:59:01 2011 +0000 +++ b/src/os/unix/ngx_freebsd_config.h Mon Oct 24 15:46:48 2011 +0000 @@ -109,6 +109,7 @@ #define NGX_HAVE_OS_SPECIFIC_INIT 1 +#define NGX_HAVE_DEBUG_MALLOC 1 extern char **environ;
--- a/src/os/unix/ngx_freebsd_init.c Mon Oct 24 12:59:01 2011 +0000 +++ b/src/os/unix/ngx_freebsd_init.c Mon Oct 24 15:46:48 2011 +0000 @@ -22,7 +22,8 @@ ngx_uint_t ngx_freebsd_sendfile_nbytes_bug; ngx_uint_t ngx_freebsd_use_tcp_nopush; -ngx_uint_t ngx_freebsd_debug_malloc; + +ngx_uint_t ngx_debug_malloc; static ngx_os_io_t ngx_freebsd_io = { @@ -80,7 +81,7 @@ malloc_options = "J"; #endif - ngx_freebsd_debug_malloc = 1; + ngx_debug_malloc = 1; #else char *mo; @@ -88,7 +89,7 @@ mo = getenv("MALLOC_OPTIONS"); if (mo && ngx_strchr(mo, 'J')) { - ngx_freebsd_debug_malloc = 1; + ngx_debug_malloc = 1; } #endif }
--- a/src/os/unix/ngx_linux_config.h Mon Oct 24 12:59:01 2011 +0000 +++ b/src/os/unix/ngx_linux_config.h Mon Oct 24 15:46:48 2011 +0000 @@ -108,6 +108,7 @@ #define NGX_HAVE_OS_SPECIFIC_INIT 1 +#define ngx_debug_init() extern char **environ;
--- a/src/os/unix/ngx_os.h Mon Oct 24 12:59:01 2011 +0000 +++ b/src/os/unix/ngx_os.h Mon Oct 24 15:46:48 2011 +0000 @@ -31,7 +31,6 @@ } ngx_os_io_t; -void ngx_debug_init(void); ngx_int_t ngx_os_init(ngx_log_t *log); void ngx_os_status(ngx_log_t *log); ngx_int_t ngx_os_specific_init(ngx_log_t *log);
--- a/src/os/unix/ngx_posix_config.h Mon Oct 24 12:59:01 2011 +0000 +++ b/src/os/unix/ngx_posix_config.h Mon Oct 24 15:46:48 2011 +0000 @@ -125,6 +125,8 @@ #define NGX_LISTEN_BACKLOG 511 +#define ngx_debug_init() + #if (__FreeBSD__) && (__FreeBSD_version < 400017)