Release 1.1.37.
[wine/gsoc-2012-control.git] / dlls / msvcrtd / debug.c
blob3ddfbbca358c273dd298183b713fb2cbdad2ee5e
1 /*
2 * msvcrtd.dll debugging code
4 * Copyright (C) 2003 Adam Gundy
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.
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.
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
21 #include "wine/debug.h"
23 #include "winbase.h"
25 #define _DEBUG
26 #include "crtdbg.h"
28 WINE_DEFAULT_DEBUG_CHANNEL(msvcrt);
30 int _crtAssertBusy = -1;
31 int _crtBreakAlloc = -1;
32 int _crtDbgFlag = 0;
34 #ifdef _WIN64
35 typedef unsigned __int64 MSVCRT_size_t;
36 #else
37 typedef unsigned long MSVCRT_size_t;
38 #endif
40 extern int _callnewh(MSVCRT_size_t);
42 /*********************************************************************
43 * ??2@YAPAXIHPBDH@Z (MSVCRTD.@)
45 void * CDECL MSVCRTD_operator_new_dbg(MSVCRT_size_t nSize, int nBlockUse,
46 const char *szFileName, int nLine)
48 void *retval = NULL;
50 TRACE("(%lu, %d, '%s', %d)\n", nSize, nBlockUse, szFileName, nLine);
52 switch(_BLOCK_TYPE(nBlockUse))
54 case _NORMAL_BLOCK:
55 break;
56 case _CLIENT_BLOCK:
57 FIXME("Unimplemented case for nBlockUse = _CLIENT_BLOCK\n");
58 return NULL;
59 case _FREE_BLOCK:
60 FIXME("Native code throws an exception here\n");
61 case _CRT_BLOCK:
62 case _IGNORE_BLOCK:
63 ERR("Not allowed nBlockUse value: %d\n", _BLOCK_TYPE(nBlockUse));
64 return NULL;
65 default:
66 ERR("Unknown nBlockUse value: %d\n", _BLOCK_TYPE(nBlockUse));
67 return NULL;
70 retval = HeapAlloc(GetProcessHeap(), 0, nSize);
72 if (!retval)
73 _callnewh(nSize);
75 return retval;
78 /*********************************************************************
79 * _CrtSetDumpClient (MSVCRTD.@)
81 void * CDECL _CrtSetDumpClient(void *dumpClient)
83 return NULL;
87 /*********************************************************************
88 * _CrtSetReportHook (MSVCRTD.@)
90 void * CDECL _CrtSetReportHook(void *reportHook)
92 return NULL;
96 /*********************************************************************
97 * _CrtSetReportMode (MSVCRTD.@)
99 int CDECL _CrtSetReportMode(int reportType, int reportMode)
101 return 0;
105 /*********************************************************************
106 * _CrtSetBreakAlloc (MSVCRTD.@)
108 int CDECL _CrtSetBreakAlloc(int new)
110 int old = _crtBreakAlloc;
111 _crtBreakAlloc = new;
112 return old;
115 /*********************************************************************
116 * _CrtSetDbgFlag (MSVCRTD.@)
118 int CDECL _CrtSetDbgFlag(int new)
120 int old = _crtDbgFlag;
121 _crtDbgFlag = new;
122 return old;
126 /*********************************************************************
127 * _CrtDbgReport (MSVCRTD.@)
129 int CDECL _CrtDbgReport(int reportType, const char *filename, int linenumber,
130 const char *moduleName, const char *format, ...)
132 return 0;
135 /*********************************************************************
136 * _CrtDumpMemoryLeaks (MSVCRTD.@)
138 int CDECL _CrtDumpMemoryLeaks(void)
140 return 0;
143 /*********************************************************************
144 * _CrtCheckMemory (MSVCRTD.@)
146 int CDECL _CrtCheckMemory(void)
148 /* Note: maybe we could call here our heap validating functions ? */
149 return TRUE;
153 /*********************************************************************
154 * __p__crtAssertBusy (MSVCRTD.@)
156 int * CDECL __p__crtAssertBusy(void)
158 return &_crtAssertBusy;
161 /*********************************************************************
162 * __p__crtBreakAlloc (MSVCRTD.@)
164 int * CDECL __p__crtBreakAlloc(void)
166 return &_crtBreakAlloc;
169 /*********************************************************************
170 * __p__crtDbgFlag (MSVCRTD.@)
172 int * CDECL __p__crtDbgFlag(void)
174 return &_crtDbgFlag;