Code::Blocks  SVN r11506
blockallocated.cpp
Go to the documentation of this file.
1 /*
2  * This file is part of the Code::Blocks IDE and licensed under the GNU Lesser General Public License, version 3
3  * http://www.gnu.org/licenses/lgpl-3.0.html
4  *
5  * $Revision: 8948 $
6  * $Id: blockallocated.cpp 8948 2013-04-06 17:15:49Z alpha0010 $
7  * $HeadURL: https://svn.code.sf.net/p/codeblocks/code/trunk/src/sdk/blockallocated.cpp $
8  */
9 
10 #include "sdk_precomp.h"
11 
12 #ifndef CB_PRECOMP
13  #include <wx/log.h> // for wxSafeShowMessage()
14  #include <wx/regex.h>
15 #endif
16 #include "blockallocated.h"
17 
18 namespace BlkAllc
19 {
20 
21  void DebugLog(wxString cn, int blockSize, int poolSize, int max_refs, int total_refs, int ref_count)
22  {
23  wxString s;
24  wxString cn2;
25 
26  if(total_refs == 0)
27  return; // pointless
28 
29  wxRegEx r(_T("^[A-Z]?[0-9]+(.*)"));
30  if(r.Matches(cn))
31  cn2 = r.GetMatch(cn, 1);
32 
33  s.Printf(_T("%s\n\n%d reserved pools of size %d (%d total objects)\n"
34  "Maximum number of allocated objects: %d\n"
35  "Total number of allocations: %d\n"
36  "Number of stale objects: %d %s"),
37  cn2.c_str(),
38  blockSize, poolSize, blockSize * poolSize,
39  max_refs, total_refs, ref_count, (ref_count == 0 ? _T("") : _T("(memory leak)")));
40 
41  wxSafeShowMessage(_T("Block Allocator"), s);
42  } // end of DebugLog
43 }
void wxSafeShowMessage(const wxString &title, const wxString &text)
wxCStrData c_str() const
bool Matches(const wxString &text, int flags=0) const
#define _T(string)
void DebugLog(wxString cn, int blockSize, int poolSize, int max_refs, int total_refs, int ref_count)
bool GetMatch(size_t *start, size_t *len, size_t index=0) const
int Printf(const wxString &pszFormat,...)