Nut/OS  5.0.5
API Reference
memdebug.h
Go to the documentation of this file.
00001 #ifndef _MEMDEBUG_H_
00002 #define _MEMDEBUG_H_
00003 
00004 /*
00005  * Copyright (C) 2009 by egnite GmbH
00006  *
00007  * All rights reserved.
00008  *
00009  * Redistribution and use in source and binary forms, with or without
00010  * modification, are permitted provided that the following conditions
00011  * are met:
00012  *
00013  * 1. Redistributions of source code must retain the above copyright
00014  *    notice, this list of conditions and the following disclaimer.
00015  * 2. Redistributions in binary form must reproduce the above copyright
00016  *    notice, this list of conditions and the following disclaimer in the
00017  *    documentation and/or other materials provided with the distribution.
00018  * 3. Neither the name of the copyright holders nor the names of
00019  *    contributors may be used to endorse or promote products derived
00020  *    from this software without specific prior written permission.
00021  *
00022  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
00023  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00024  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
00025  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
00026  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
00027  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
00028  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
00029  * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
00030  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
00031  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
00032  * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
00033  * SUCH DAMAGE.
00034  *
00035  * For additional information see http://www.ethernut.de/
00036  *
00037  */
00038 
00039 /*
00040  * $Id: memdebug.h 4473 2012-08-20 15:12:45Z haraldkipp $
00041  */
00042 
00043 #include <compiler.h>
00044 #include <cfg/memory.h>
00045 #include <stdlib.h>
00046 #include <string.h>
00047 
00048 #ifdef NUTDEBUG_HEAP
00049 #define malloc(s) dbg_malloc(s, __FILE__, __LINE__)
00050 #define calloc(n, s) dbg_calloc(n, s, __FILE__, __LINE__)
00051 #define free(p) dbg_free(p, __FILE__, __LINE__)
00052 #define realloc(p, s) dbg_realloc(p, s, __FILE__, __LINE__)
00053 #define strdup(s) dbg_strdup(s, __FILE__, __LINE__)
00054 #endif
00055 
00056 extern void *dbg_malloc(size_t len, const char *file, int line);
00057 extern void *dbg_calloc(size_t num, size_t size, const char *file, int line);
00058 extern void dbg_free(void *p, const char *file, int line);
00059 extern void *dbg_realloc(void* ptr, size_t len, const char *file, int line);
00060 extern char *dbg_strdup(const char *str, const char *file, int line);
00061 
00062 #endif