ReactOS 0.4.16-dev-2104-gb84fa49
crtdbg.h
Go to the documentation of this file.
1/*
2 * Debug API
3 *
4 * Copyright 2001 Francois Gouget.
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 */
20#ifndef __WINE_CRTDBG_H_
21#define __WINE_CRTDBG_H_
22
23#include <corecrt.h>
24
25/* The debug API is not implemented in Winelib.
26 * Redirect everything to the regular APIs.
27 */
28
29#define _CRT_WARN 0
30#define _CRT_ERROR 1
31#define _CRT_ASSERT 2
32#define _CRT_ERRCNT 3
33
34#define _FREE_BLOCK 0
35#define _NORMAL_BLOCK 1
36#define _CRT_BLOCK 2
37#define _IGNORE_BLOCK 3
38#define _CLIENT_BLOCK 4
39#define _MAX_BLOCKS 5
40
41#define _BLOCK_TYPE(block) (block & 0xFFFF)
42#define _BLOCK_SUBTYPE(block) (block >> 16 & 0xFFFF)
43
44typedef struct _CrtMemState
45{
52
53
54#ifndef _DEBUG
55
56#define _ASSERT(expr) ((void)0)
57#define _ASSERTE(expr) ((void)0)
58#define _CrtDbgBreak() ((void)0)
59
60#define _CrtCheckMemory() ((int)1)
61#define _CrtDbgReport(...) ((int)0)
62#define _CrtDumpMemoryLeaks() ((int)0)
63#define _CrtSetBreakAlloc(a) ((__msvcrt_long)0)
64#define _CrtSetDbgFlag(f) ((int)0)
65#define _CrtSetDumpClient(f) ((void)0)
66#define _CrtSetReportMode(t,m) ((int)0)
67
68#else /* _DEBUG */
69
70#include <assert.h>
71#define _ASSERT(expr) assert(expr)
72#define _ASSERTE(expr) assert(expr)
73#if defined(_MSC_VER)
74#define _CrtDbgBreak() __debugbreak()
75#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
76#define _CrtDbgBreak() __asm__ ("\tint $0x3\n")
77#else
78#define _CrtDbgBreak() ((void)0)
79#endif
80
81#ifdef __cplusplus
82extern "C" {
83#endif
84
85extern int _crtAssertBusy;
86extern int _crtBreakAlloc;
87extern int _crtDbgFlag;
88
90_ACRTIMP int __cdecl _CrtDbgReport(int reportType, const char *filename, int linenumber,
91 const char *moduleName, const char *format, ...) __WINE_CRT_PRINTF_ATTR(5, 6);
95_ACRTIMP void *__cdecl _CrtSetDumpClient(void *dumpClient);
96_ACRTIMP int __cdecl _CrtSetReportMode(int reportType, int reportMode);
97
98#ifdef __cplusplus
99}
100#endif
101
102#endif /* _DEBUG */
103
104#define _CrtDoForAllClientObjects(f,c) ((void)0)
105#define _CrtIsMemoryBlock(p,s,r,f,l) ((int)1)
106#define _CrtIsValidHeapPointer(p) ((int)1)
107#define _CrtIsValidPointer(p,s,a) ((int)1)
108#define _CrtMemCheckpoint(s) ((void)0)
109#define _CrtMemDifference(s1,s2,s3) ((int)0)
110#define _CrtMemDumpAllObjectsSince(s) ((void)0)
111#define _CrtMemDumpStatistics(s) ((void)0)
112#define _CrtSetAllocHook(f) ((void)0)
113
114#define _RPT0(t,m)
115#define _RPT1(t,m,p1)
116#define _RPT2(t,m,p1,p2)
117#define _RPT3(t,m,p1,p2,p3)
118#define _RPT4(t,m,p1,p2,p3,p4)
119#define _RPTF0(t,m)
120#define _RPTF1(t,m,p1)
121#define _RPTF2(t,m,p1,p2)
122#define _RPTF3(t,m,p1,p2,p3)
123#define _RPTF4(t,m,p1,p2,p3,p4)
124
125
126#define _malloc_dbg(s,t,f,l) malloc(s)
127#define _calloc_dbg(c,s,t,f,l) calloc(c,s)
128#define _expand_dbg(p,s,t,f,l) _expand(p,s)
129#define _free_dbg(p,t) free(p)
130#define _realloc_dbg(p,s,t,f,l) realloc(p,s)
131
132#endif /* __WINE_CRTDBG_H */
long _crtAssertBusy
Definition: dbgrptt.cpp:49
long _crtBreakAlloc
Definition: debug_heap.cpp:146
int _crtDbgFlag
Definition: debug_heap.cpp:145
#define __cdecl
Definition: corecrt.h:121
#define _ACRTIMP
Definition: corecrt.h:153
#define __WINE_CRT_PRINTF_ATTR(fmt, args)
Definition: corecrt.h:321
unsigned long __msvcrt_ulong
Definition: corecrt.h:168
struct _CrtMemState _CrtMemState
#define _CrtCheckMemory()
Definition: crtdbg.h:60
#define _CrtDumpMemoryLeaks()
Definition: crtdbg.h:62
#define _CrtSetReportMode(t, m)
Definition: crtdbg.h:66
#define _CrtSetBreakAlloc(a)
Definition: crtdbg.h:63
#define _CrtDbgReport(...)
Definition: crtdbg.h:61
#define _CrtSetDbgFlag(f)
Definition: crtdbg.h:64
#define _CrtSetDumpClient(f)
Definition: crtdbg.h:65
const char * filename
Definition: ioapi.h:137
#define _MAX_BLOCKS
Definition: crtdbg.h:104
__msvcrt_ulong lHighWaterCount
Definition: crtdbg.h:49
__msvcrt_ulong lTotalCount
Definition: crtdbg.h:50
struct _CrtMemBlockHeader * pBlockHeader
Definition: crtdbg.h:46
__msvcrt_ulong lCounts[_MAX_BLOCKS]
Definition: crtdbg.h:47
__msvcrt_ulong lSizes[_MAX_BLOCKS]
Definition: crtdbg.h:48
Definition: format.c:58